Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision Next revisionBoth sides next revision | ||
| toh:netgear:wnce4004 [2014/01/22 19:08] – created seeschloss | toh:netgear:wnce4004 [2018/03/31 23:22] – ↷ Links adapted because of a move operation bobafetthotmail | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Netgear WNCE4004 ====== | ||
| + | This is not a router but an " | ||
| + | The device runs a patched version of OpenWRT, based on Kamikaze r18571. | ||
| + | |||
| + | ===== Supported Versions ===== | ||
| + | ^ Version/ | ||
| + | | ? | ||
| + | |||
| + | |||
| + | OEM source code available at: [[http:// | ||
| + | |||
| + | ===== Hardware Highlights ===== | ||
| + | ^ SoC ^ Ram ^ Flash ^ Network ^ USB ^ Serial ^ JTag ^ | ||
| + | | AR7240 | 32MiB | 8MiB | 4 x 1| No | Yes | ? | | ||
| + | |||
| + | ==== Opening the case ==== | ||
| + | **Note:** This will void your warranty! | ||
| + | |||
| + | *To remove the cover, there are four screw under the rubber pads under the case. Everything just comes out easily once they are unscrewed. | ||
| + | |||
| + | |||
| + | ==== Serial ==== | ||
| + | -> [[docs: | ||
| + | |||
| + | There is one populated serial port: | ||
| + | |||
| + | < | ||
| + | | ||
| + | | | ||
| + | |___ | ||
| + | | | ||
| + | | ||
| + | | o Tx h | | ||
| + | | ||
| + | | o GND | ||
| + | | ||
| + | | | ||
| + | . | | ||
| + | . | | ||
| + | . | | ||
| + | |||
| + | power | ||
| + | on/off switch | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== JTAG ==== | ||
| + | -> [[docs: | ||
| + | |||
| + | The device has no obvious JTAG pad, but it might be under one of the large shields or tape. | ||
| + | |||
| + | |||
| + | ===== Bootlogs ===== | ||
| + | ==== OEM bootlog ==== | ||
| + | <WRAP bootlog> | ||
| + | < | ||
| + | |||
| + | AP99 (ar7241 - Virian) U-boot | ||
| + | DRAM: | ||
| + | sri | ||
| + | ar7240_ddr_initial_config(133): | ||
| + | #### TAP VALUE 1 = 0x2, 2 = 0x2 [0xc5365fe3: | ||
| + | 32 MB | ||
| + | Top of RAM usable for U-Boot at: 82000000 | ||
| + | Reserving 247k for U-Boot at: 81fc0000 | ||
| + | Reserving 192k for malloc() at: 81f90000 | ||
| + | Reserving 44 Bytes for Board Info at: 81f8ffd4 | ||
| + | Reserving 36 Bytes for Global Data at: 81f8ffb0 | ||
| + | Reserving 128k for boot params() at: 81f6ffb0 | ||
| + | Stack Pointer at: 81f6ff98 | ||
| + | Now running in RAM - U-Boot at: 81fc0000 | ||
| + | id read 0x100000ff | ||
| + | sector count = 128 | ||
| + | Flash: | ||
| + | BOARD IS NOT CALIBRATED!!! | ||
| + | In: serial | ||
| + | Out: | ||
| + | Err: | ||
| + | Net: | ||
| + | No valid address in Flash. Using fixed address | ||
| + | Fetching MAC Address from 0x81fea8e8 | ||
| + | Virian MDC CFG Value ==> 4 | ||
| + | : cfg1 0xf cfg2 0x7114 | ||
| + | eth0: 00: | ||
| + | eth0 up | ||
| + | Virian MDC CFG Value ==> 4 | ||
| + | : cfg1 0xf cfg2 0x7214 | ||
| + | eth1: 20: | ||
| + | athrs26_reg_init_lan | ||
| + | ATHRS26: resetting s26 | ||
| + | ATHRS26: s26 reset done | ||
| + | eth1 up | ||
| + | eth0, eth1 | ||
| + | eth0 link down | ||
| + | FAIL | ||
| + | eth1 link down | ||
| + | FAIL | ||
| + | |||
| + | Client starts...[Listening] for ADVERTISE...TTTTTT | ||
| + | Retry count exceeded; boot the image as usual | ||
| + | |||
| + | nmrp server is stopped or failed ! | ||
| + | Hit any key to stop autoboot: | ||
| + | ## Booting image at 9f050000 ... | ||
| + | Image Name: MIPS OpenWrt Linux-2.6.31 | ||
| + | | ||
| + | Image Type: MIPS Linux Kernel Image (lzma compressed) | ||
| + | Data Size: 826941 Bytes = 807.6 kB | ||
| + | Load Address: 80002000 | ||
| + | Entry Point: | ||
| + | | ||
| + | | ||
| + | | ||
| + | No initrd | ||
| + | ## Transferring control to Linux (at address 801cbfb0) ... | ||
| + | ## Giving linux memsize in bytes, 33554432 | ||
| + | |||
| + | Starting kernel ... | ||
| + | |||
| + | Booting AR7240(Python)... | ||
| + | Linux version 2.6.31 (root@dni-l-sw02) (gcc version 4.1.2) #1 Tue Jul 16 11:12:34 EDT 2013 | ||
| + | flash_size passed from bootloader = 8 | ||
| + | CPU revision is: 00019374 (MIPS 24Kc) | ||
| + | Determined physical RAM map: | ||
| + | | ||
| + | User-defined physical RAM map: | ||
| + | | ||
| + | Zone PFN ranges: | ||
| + | Normal | ||
| + | Movable zone start PFN for each node | ||
| + | early_node_map[1] active PFN ranges | ||
| + | 0: 0x00000000 -> 0x00002000 | ||
| + | Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 | ||
| + | Kernel command line: console=ttyS0, | ||
| + | PID hash table entries: 128 (order: 7, 512 bytes) | ||
| + | Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) | ||
| + | Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) | ||
| + | Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. | ||
| + | Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes | ||
| + | Writing ErrCtl register=00000000 | ||
| + | Readback ErrCtl register=00000000 | ||
| + | Memory: 29956k/ | ||
| + | NR_IRQS:128 | ||
| + | plat_time_init: | ||
| + | Calibrating delay loop... 266.24 BogoMIPS (lpj=532480) | ||
| + | Mount-cache hash table entries: 512 | ||
| + | NET: Registered protocol family 16 | ||
| + | ===== ar7240_platform_init: | ||
| + | PCI init: | ||
| + | ar7240_pcibios_init(305): | ||
| + | registering PCI controller with io_map_base unset | ||
| + | bio: create slab < | ||
| + | pci 0000: | ||
| + | pci 0000: | ||
| + | Returning IRQ 48 | ||
| + | NET: Registered protocol family 2 | ||
| + | IP route cache hash table entries: 1024 (order: 0, 4096 bytes) | ||
| + | TCP established hash table entries: 1024 (order: 1, 8192 bytes) | ||
| + | TCP bind hash table entries: 1024 (order: 0, 4096 bytes) | ||
| + | TCP: Hash tables configured (established 1024 bind 1024) | ||
| + | TCP reno registered | ||
| + | NET: Registered protocol family 1 | ||
| + | AR7240 GPIOC major 0 | ||
| + | squashfs: version 4.0 (2009/ | ||
| + | msgmni has been set to 58 | ||
| + | io scheduler noop registered | ||
| + | io scheduler deadline registered (default) | ||
| + | Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled | ||
| + | serial8250.0: | ||
| + | console [ttyS0] enabled | ||
| + | 8 cmdlinepart partitions found on MTD device ar7240-nor0 | ||
| + | Creating 8 MTD partitions on " | ||
| + | 0x000000000000-0x000000040000 : " | ||
| + | 0x000000040000-0x000000050000 : " | ||
| + | 0x000000050000-0x000000130000 : " | ||
| + | 0x000000130000-0x0000006d0000 : " | ||
| + | mtd: partition " | ||
| + | mtd: partition " | ||
| + | 0x000000410000-0x0000006d0000 : " | ||
| + | 0x0000006d0000-0x0000006e0000 : " | ||
| + | 0x0000006e0000-0x0000006f0000 : " | ||
| + | 0x0000006f0000-0x0000007f0000 : " | ||
| + | 0x0000007f0000-0x000000800000 : " | ||
| + | u32 classifier | ||
| + | Performance counters on | ||
| + | TCP cubic registered | ||
| + | NET: Registered protocol family 10 | ||
| + | IPv6 over IPv4 tunneling driver | ||
| + | NET: Registered protocol family 17 | ||
| + | Ebtables v2.0 registered | ||
| + | 802.1Q VLAN Support v1.8 Ben Greear < | ||
| + | All bugs added by David S. Miller < | ||
| + | arch/ | ||
| + | ar7240wdt_init: | ||
| + | VFS: Mounted root (squashfs filesystem) readonly on device 31:3. | ||
| + | Freeing unused kernel memory: 116k freed | ||
| + | Please be patient, while OpenWrt loads ... | ||
| + | - preinit - | ||
| + | Press CTRL-C for failsafe | ||
| + | Can't lock / | ||
| + | switching to jffs2 | ||
| + | mount: mounting / | ||
| + | jffs2 not ready yet; using ramdisk | ||
| + | mount: mounting /proc on /mnt/proc failed: No such file or directory | ||
| + | Unlocking rootfs ... | ||
| + | - init - | ||
| + | init started: BusyBox v1.14.4 (2013-07-16 11:03:53 EDT) | ||
| + | data 2:6 | ||
| + | real_sum :4ca2 | ||
| + | already back before! | ||
| + | Loading data from /dev/mtd6 ... | ||
| + | The data configuration is Valid | ||
| + | The data center is Running ... | ||
| + | ATHR_GMAC: Length per segment 1536 | ||
| + | ATHR_GMAC: fifo cfg 3 01f00140 | ||
| + | ATHR_GMAC: Mac address for unit 1:bfff0006 | ||
| + | ATHR_GMAC: 20: | ||
| + | ATHR_GMAC: Max segments per packet : 1 | ||
| + | ATHR_GMAC: Max tx descriptor count : 40 | ||
| + | ATHR_GMAC: Max rx descriptor count : 252 | ||
| + | ATHR_GMAC: Mac capability flags : 24D91 | ||
| + | SN: 37612A5J0090D | ||
| + | WAN MAC: FF: | ||
| + | clbr: module license ' | ||
| + | Disabling lock debugging due to kernel taint | ||
| + | client bridge loaded | ||
| + | cp: cannot stat '/ | ||
| + | device eth0 entered promiscuous mode | ||
| + | athr_gmac_ring_alloc Allocated 640 at 0x81d69000 | ||
| + | athr_gmac_ring_alloc Allocated 4032 at 0x81dbd000 | ||
| + | Virian MDC CFG Value ==> 4 | ||
| + | Setting Drop CRC Errors, Pause Frames and Length Error frames | ||
| + | ATHRS26: resetting s26 | ||
| + | ATHRS26: s26 reset done | ||
| + | Setting PHY... | ||
| + | ADDRCONF(NETDEV_UP): | ||
| + | udhcp client (v0.9.8) started | ||
| + | Sending discover... | ||
| + | Sending discover... | ||
| + | Sending discover... | ||
| + | ###### udhcpc leasefail | ||
| + | udhcp server (v0.9.8) started | ||
| + | No lease, forking to background. | ||
| + | The attached devices demo is Running ... | ||
| + | mkdir: cannot create directory '/ | ||
| + | mknod: /dev/ptmx: File exists | ||
| + | mknod: /dev/pts/0: Operation not permitted | ||
| + | mknod: /dev/pts/1: Operation not permitted | ||
| + | killall: utelnetd: no process killed | ||
| + | killall: telnetenable: | ||
| + | The telnetenable is running ... | ||
| + | /sbin/uci: I/O error | ||
| + | /sbin/uci: Entry not found | ||
| + | The abbreviation of English is Eng! | ||
| + | Passed the checksum verification! | ||
| + | tar: short read | ||
| + | gui_region = English | ||
| + | region = English, download_region = English | ||
| + | | ||
| + | Update string table successfully, | ||
| + | The httpd server is running ... | ||
| + | telnetd: starting | ||
| + | port: 23; interface: any; login program: /bin/login | ||
| + | bind: Address already in use | ||
| + | POT is Running... | ||
| + | POT is Finished!!! | ||
| + | The POT-(Get/ | ||
| + | Modules already unloaded | ||
| + | Args: 1 | ||
| + | Args: 1 | ||
| + | ath_hal: 0.9.17.1 (AR5416, AR9380, DEBUG, REGOPS_FUNC, | ||
| + | ath_rate_atheros: | ||
| + | ath_dfs: Version 2.0.0 | ||
| + | Copyright (c) 2005-2006 Atheros Communications, | ||
| + | ath_dev: Copyright (c) 2001-2007 Atheros Communications, | ||
| + | ath_pci: 9.2.0_U10.1020 (Atheros/ | ||
| + | __ath_attach: | ||
| + | ACBKMinfree = 48 | ||
| + | ACBEMinfree = 32 | ||
| + | ACVIMinfree = 16 | ||
| + | ACVOMinfree = 0 | ||
| + | CABMinfree = 48 | ||
| + | UAPSDMinfree = 0 | ||
| + | ar9300RadioAttach: | ||
| + | Restoring Cal data from Flash | ||
| + | dfs_attach: use DFS enhancements | ||
| + | DFS min filter rssiThresh = 18 | ||
| + | DFS max pulse dur = 151 ticks | ||
| + | ath_get_caps[5128] rx chainmask mismatch actual 7 sc_chainmak 0 | ||
| + | ath_get_caps[5103] tx chainmask mismatch actual 3 sc_chainmak 0 | ||
| + | SC Callback Registration for wifi0 | ||
| + | wifi0: Atheros 9580: mem=0x10000000, | ||
| + | DFS min filter rssiThresh = 15 | ||
| + | DFS max pulse dur = 151 ticks | ||
| + | wifi1 no private ioctls. | ||
| + | |||
| + | Creating sta for Arctica on | ||
| + | wlan_vap_create : enter. devhandle=0x80cbc2c0, | ||
| + | wlan_vap_create : exit. devhandle=0x80cbc2c0, | ||
| + | VAP device ath0 created | ||
| + | Added ath0 mode managed | ||
| + | Invalid command : bgscan | ||
| + | |||
| + | DES SSID SET=Arctica | ||
| + | | ||
| + | / | ||
| + | Invalid command : setVowExt | ||
| + | Invalid command : setKeySrchAlways | ||
| + | Invalid command : set_vsp_enable | ||
| + | Interface doesn' | ||
| + | setPhyRestartWar (8BE0): Operation not permitted | ||
| + | Invalid command : setVowExtStats | ||
| + | Created ath0 mode sta for Arctica | ||
| + | *** WARNING: AP_SSID - WPS is enabled in TKIP only mode!! *** | ||
| + | *** WARNING: WPS has been disabled | ||
| + | lo no wireless extensions. | ||
| + | |||
| + | sit0 no wireless extensions. | ||
| + | |||
| + | Warning: Driver for device eth0 has been compiled with an ancient version | ||
| + | of Wireless Extension, while this program support version 11 and later. | ||
| + | Some things may be broken... | ||
| + | |||
| + | br0 no wireless extensions. | ||
| + | |||
| + | wifi0 no wireless extensions. | ||
| + | |||
| + | device ath0 entered promiscuous mode | ||
| + | br0: port 2(ath0) entering forwarding state | ||
| + | arping: bind: Cannot assign requested address | ||
| + | >>>>> | ||
| + | CHH: System Configuration | ||
| + | AP_IPADDR: | ||
| + | AP_NETMASK: | ||
| + | WAN_MODE: | ||
| + | WAN_IPADDR: | ||
| + | WAN_NETMASK: | ||
| + | WAN_IF: | ||
| + | LAN_IF: | ||
| + | WLAN_ON_BOOT: | ||
| + | AP_STARTMODE: | ||
| + | AP_RADIO_ID: | ||
| + | AP_RADIO_ID_2: | ||
| + | AP_PRIMARY_CH: | ||
| + | AP_CHMODE: | ||
| + | AP_PRIMARY_CH_2: | ||
| + | AP_CHMODE_2: | ||
| + | PUREG:=0 | ||
| + | PUREN:=0 | ||
| + | TXQUEUELEN: | ||
| + | SHORTGI:=1 | ||
| + | SHORTGI_2: | ||
| + | AMPDUENABLE: | ||
| + | AMPDUENABLE_2: | ||
| + | AMPDUFRAMES: | ||
| + | AMPDUFRAMES_2: | ||
| + | AMPDULIMIT: | ||
| + | AMPDULIMIT_2: | ||
| + | AMPDUMIN: | ||
| + | AMPDUMIN_2: | ||
| + | CWMMODE:=1 | ||
| + | CWMMODE_2: | ||
| + | RATECTL: | ||
| + | MANRATE: | ||
| + | MANRETRIES: | ||
| + | RX_CHAINMASK: | ||
| + | RX_CHAINMASK_2: | ||
| + | TX_CHAINMASK: | ||
| + | TX_CHAINMASK_2: | ||
| + | AP_SSID: | ||
| + | AP_SSID_2: | ||
| + | AP_PRIMARY_KEY_0: | ||
| + | AP_PRIMARY_KEY_1: | ||
| + | AP_WEP_MODE_0: | ||
| + | AP_WEP_MODE_1: | ||
| + | AP_MODE:=ap | ||
| + | AP_SECMODE: | ||
| + | AP_SECFILE: | ||
| + | WPS_ENABLE: | ||
| + | AP_MODE_2: | ||
| + | AP_SECMODE_2: | ||
| + | AP_SECFILE_2: | ||
| + | WPS_ENABLE_2: | ||
| + | AP_MODE_3: | ||
| + | AP_SECMODE_3: | ||
| + | AP_SECFILE_3: | ||
| + | WPS_ENABLE_3: | ||
| + | AP_MODE_4: | ||
| + | AP_SECMODE_4: | ||
| + | AP_SECFILE_4: | ||
| + | WPS_ENABLE_4: | ||
| + | AP_MODE_5: | ||
| + | AP_SECMODE_5: | ||
| + | AP_SECFILE_5: | ||
| + | WPS_ENABLE_5: | ||
| + | AP_MODE_6: | ||
| + | AP_SECMODE_6: | ||
| + | AP_SECFILE_6: | ||
| + | WPS_ENABLE_6: | ||
| + | AP_MODE_7: | ||
| + | AP_SECMODE_7: | ||
| + | AP_SECFILE_7: | ||
| + | WPS_ENABLE_7: | ||
| + | AP_MODE_8: | ||
| + | AP_SECMODE_8: | ||
| + | AP_SECFILE_8: | ||
| + | WPS_ENABLE_8: | ||
| + | AP_MODE_9: | ||
| + | AP_SECMODE_9: | ||
| + | AP_SECFILE_9: | ||
| + | WPS_ENABLE_9: | ||
| + | AP_MODE_10: | ||
| + | AP_SECMODE_10: | ||
| + | AP_SECFILE_10: | ||
| + | WPS_ENABLE_10: | ||
| + | AP_MODE_11: | ||
| + | AP_SECMODE_11: | ||
| + | AP_SECFILE_11: | ||
| + | WPS_ENABLE_11: | ||
| + | AP_MODE_12: | ||
| + | AP_SECMODE_12: | ||
| + | AP_SECFILE_12: | ||
| + | WPS_ENABLE_12: | ||
| + | AP_MODE_13: | ||
| + | AP_SECMODE_13: | ||
| + | AP_SECFILE_13: | ||
| + | WPS_ENABLE_13: | ||
| + | AP_MODE_14: | ||
| + | AP_SECMODE_14: | ||
| + | AP_SECFILE_14: | ||
| + | WPS_ENABLE_14: | ||
| + | AP_MODE_15: | ||
| + | AP_SECMODE_15: | ||
| + | AP_SECFILE_15: | ||
| + | WPS_ENABLE_15: | ||
| + | AP_MODE_16: | ||
| + | AP_SECMODE_16: | ||
| + | AP_SECFILE_16: | ||
| + | WPS_ENABLE_16: | ||
| + | AP_RFPARAM_HACK: | ||
| + | ATH_countrycode: | ||
| + | WSC_MANUFACTURER: | ||
| + | WSC_MODEL_NAME: | ||
| + | WSC_MODEL_NUMBER: | ||
| + | WSC_SERIAL_NUMBER: | ||
| + | WSC_UPNP_AD_PERIOD: | ||
| + | WSC_UPNP_AD_TTL: | ||
| + | WSC_CONF_RELOAD_TIME: | ||
| + | WSC_AP_PIN_ATTACK_CHECK: | ||
| + | WSC_AP_PIN_ATTACK_NUM: | ||
| + | WSC_AP_PIN_HISTORY_FAILURES: | ||
| + | WSC_CONFIGURED: | ||
| + | WSC_AP_SETUP_LOCKED: | ||
| + | WSC_AP_AUTO_LOCKED: | ||
| + | WSC_NAME: | ||
| + | AP_ANYSSID_HACK: | ||
| + | AP_WPA:=1 | ||
| + | AP_CYPHER: | ||
| + | PSK_KEY: | ||
| + | WPA_IS_HEX: | ||
| + | AP_WPA_GROUP_REKEY: | ||
| + | AP_HIDE_SSID: | ||
| + | AP_RTS: | ||
| + | AP_FRAG: | ||
| + | AP_WMM:=1 | ||
| + | AP_SHPREAMBLE: | ||
| + | AP_COUNTRY_IE: | ||
| + | BINTVAL: | ||
| + | DTIM:=2 | ||
| + | WSC_PIN: | ||
| + | AP_DOTH:=0 | ||
| + | AP_DISABLECOEXT: | ||
| + | WPS_LED_BEHAVIOR: | ||
| + | WIRED_STRING_HACK: | ||
| + | LED_CUSTOM: | ||
| + | CUR_APNAME: | ||
| + | br0: port 2(ath0) entering disabled state | ||
| + | Can't lock / | ||
| + | MTD partition not found. | ||
| + | WDT : enabling watchdog timer | ||
| + | watchdog: WDIOC_SETTIMEOUT: | ||
| + | |||
| + | Please press Enter to activate this console. ieee80211_ioctl_getparam : parameter 0x284 not supported | ||
| + | kill led-extender... | ||
| + | killall: led-extender: | ||
| + | driver_atheros_event_wireless: | ||
| + | DES SSID SET=Arctica | ||
| + | - SIOCGIWSCAN | ||
| + | |||
| + | DES SSID SET=Arctica | ||
| + | ath0: Trying to ieee80211_ioctl_setmlme: | ||
| + | associate with 1[ieee80211_ioctl_setmlme] set desired bssid 14: | ||
| + | 4: | ||
| + | ath0: Associatedbr0: | ||
| + | with 14: | ||
| + | WPA: EAPOL-Key (1/4) Received in GOOD state current state 7 expected state is 7WPA: EAPOL-Key (3/4) Received in GOOD state current state 8 expected state is 7ath0: WPA: Key negotiation completed with 14: | ||
| + | ath0: CTRL-EVENT-CONNECTED - Connection to 14: | ||
| + | run led-extender... | ||
| + | The extender led demo is Running ... | ||
| + | Performing a DHCP renew | ||
| + | Sending discover... | ||
| + | Sending select for 192.168.1.240... | ||
| + | Sending select for 192.168.1.240... | ||
| + | Lease of 192.168.1.240 obtained, lease time 43200 | ||
| + | deleting routers | ||
| + | adding router 192.168.1.254 | ||
| + | adding dns 192.168.1.254 | ||
| + | |||
| + | |||
| + | |||
| + | BusyBox v1.14.4 (2013-07-16 11:03:53 EDT) built-in shell (ash) | ||
| + | Enter ' | ||
| + | |||
| + | _______ | ||
| + | | ||
| + | | ||
| + | | ||
| + | |__| W I R E L E S S F R E E D O M | ||
| + | | ||
| + | * 10 oz Vodka Shake well with ice and strain | ||
| + | * 10 oz Triple sec mixture into 10 shot glasses. | ||
| + | * 10 oz lime juice Salute! | ||
| + | | ||
| + | root@WNCE4004:/# | ||
| + | </ | ||
| + | |||
| + | ===== Tags ===== | ||
| + | [[meta: | ||
| + | {{tag> | ||