ELF@@"!_?#{@$@R{#_ֿq R#*(qTqaTc2?#{a2 q!<R@#qa2s!<!R!R @{¨#__?#{R R@sRR @{¨#_?#{@SR\@RRRRA@@@yy7RR 7R`R7&@RSA{¨#_?#{*SR*[R@ 7A9*B2RRAR 7BR_* R 7BR_*R`7R*R7*R7R45A9qT@qTCR**RR7`^@eB*RRRAR@h@yy7*R@7*`R7*R7**RSA[B{Ĩ#_aABR`^@5*RAR6RaA`^@*aAR`^@<aAR`^@<R 7kTaAR`^@"qTaAyR`^@RRkTaAR`^@@@?#{*SR*R@ 7A9*RRAR 7A9* 4R7BR_*R7R*R7R4aABR`^@4*R@7*`R7CR**RR7`^@*eBRRRAR@h@ygy7*R7**RSA@{è#_ R7RT5?#{S\@@7!R<!x"RSA{¨#_t@R&@?#{SsR@ @!R@?`4sqAT^@@7SA@{è#_&@SA@{è#_5?#{{#_ _A4_?#{{#_?#{D$@{#_?#{D$@{#_?#{A8S ,B/R"Rt*/@9R_qRRaA8/@,BBTRSA{ƨ#_?#{*SRqRA\@sqTAR^@*7SA@{è#_ւA^@!SA@{è#_?#{ @`@ @{¨#_?#{*{#_?#{#S&Aye@c dC4A at~@?qT??qhT R`~RtR*R<d^@2xR@tq!0`~@4T@RSA{è#_R`~R?k TR`R?khT`~@R`~?#{!@*{#_?#{RS&@a@7RaH6RRRSA{Ĩ#_B?qTRA4[  )7R$DAT աZ|SpZ"bJa8*`J!8@aTRRRRR[B@?#{ d@@!@A ? @{¨#_?#{S*d@@!@A ?*SA{¨#_#@qHT_\@!0@B@!@9BS#BR*kT?#{"R{#_?#{A8 !@`,B`^@7C@ya*5!s^@@9҄xR29 R`R 9A8@,BB!T @{è#_R?#{SA8c`@y`@A@'RyG [u `@4` @D@6 R*RDRRaR*7 >qAT c^@"" R!Rehc^@dc^@byc^@by*7<y@qR9$RRR!R*7A9crBBR 9@?* 7` @@`07v@ (@c,B@0@`c@@e(@@d@@@!*` 5t@a^@BҀ6@!@*bZRA9a^@qBB!C@ T&v@@y@ &@*5@@ C2 @A95@R"C!2"@[B  RRRRaR*`6 [BA8'@,BBT*SAcC{Ũ#_`~*`^@!@[B`^@!&@@@[B* 5[Bt[`^@T!T&@`^@!?#{A8SR[D,Bң@y@gy7VD@&ԚBRRRR7"QR"1ATRR`7RRRRR@7Ba^@ca!Rb`7`^@BBRRhc^@uc^@byc^@by_aA#R`^@R`RA8@",BcTSA[B{Ĩ#_?#{SA8d@yE,BtGy'RRRRaR`7?`BD9d^@cB2a`B9!Rdb`7`^@'1RRRhe^@e^@AyK,RR RR` @@`06`~R@a`A8@",BcҡTSA{è#_?#{A8S ,B/R"Rt*/@ys@ynR4@*qTqnR.R@9xBR!2q*!R`ZC9`5`^C95A8/@,BBҁTRSA{ƨ#_aA"R`^@>ၟR q`T2q^R*aA"R`^@vR*?#{A8S",B'R$RRR7RRRRRRDRRRaR`7RRRRR[c@yRk`T|SeZ9Rd^9RRA9x"RRq`TRR%RRRRR+ҕ RR7VzA Tq` TaABR`^@*qTRRRRARRRRR RRRR;@9 42q@ TR"aA#R`^@RaA@R`^@"RRnR``^@eBRRRRAR@h@yy`7RR[BqcCПA8'@",Bc TSA{Ũ#_[BcCqVz`TaAbR`^@RRRRRRnaAbR`^@aACR`^@R?@9 5RaAR`^@RaA*`^@RuAt^@*"R*2"RaAR`^@R?@90qaTaACR`^@RaAcR`^@BRaAR`^@R{aAR`^@aAR $ R`^@c*RaAR`^@[c?#{S@&@&@@@`@SA{¨#_?#{qSB<[v<<*!**?*k T*SA[B{è#_!q*^@*!?#{qSB<<u<**!*R?*7*SA@{è#_!**^@!?#{A8SR[*@,B'BR}*$RRR!R*L1T`7A9`7qT*RRRR*`6^@1dS:TA8'@,BBAT*SA[B@{Ũ#_ֳ ?#{A8S[*&c'w#*,B/*1S:T***[DRR*7*RRRAR*@7@yA8/@,BBҁT*SA[BcC#@{ƨ#_րE!*?#{A8S[&*c'#*,B/y*\*L1T***[DRR*7*RRRAR*@7RA8/@,BBT*SA[BcC#@{ƨ#_րE!?#{***R{#_?#{S[cA@yr@*4 <@@$ TqTR @KR_kT<sK 4Kc"4 <c<y@f@*b>@4@y4sr@s: *~@?@" T@y5f@K!q T:@94"@y  @:9@* "*S(^@chPkT@!HkT*Ryr@"@ "*S(^@chPkT*!@ARR y:9SA[BcC{Ĩ#_@ f@8@`  *(BhPkTr@** R_kT^@*!@!@y R :9*r@^@*!@AR y:9r@*kRR?#{@B{#_?#{ @AR @{¨#__?#{*SR"t@'Lb5bV)K@br@Q`A9FjtS`6f@ @<@Kq`T*RARtr@S<Ss>RRs U5!ҟSA@{è#_֕5&ˠ k+T qUzT*`fab@br@@ ` @<q@T*RAR4r@RS<Ss>Rs @Rb@Rdh"?#{A8S5A,B@FRRR!R*q Tu8A8@,BBaT*SA@{Ĩ#_!^@7!*R^@*!*!R@?#{_qSB#RRRR?*7*SA{¨#_*R^@!^@*!*SA{¨#_!?#{A8SC,B?q!FRRRR?*qTo@yA8@,BBT*SA@{Ĩ#_!`^@7uR!R`^@*!>*R!?#{_qS5<!*RRRR?*7*SA@{è#_*R^@!^@**!*SA@{è#_!?#{A8SC,B?q!FRRRAR?*qTo@yA8@,BBT*SA@{Ĩ#_!`^@7uR!R`^@*!>*R!?#{_qS5<!*RRRaR?*7*SA@{è#_*R^@!^@**!*SA@{è#_!?#{SR&TDC@p6D`R D`R_qsq`zR*RRaR*7AR!nSA@{è#_֠^@*!?#{qS[6<!**RRRR?*75*SA[B{è#_*R^@!^@*!*4**SA[B{è#_!?#{#RS&@a@7CRH6RRRRSA{Ĩ#_B?qlTR!4[  )DA$@T7RZ|SpZ"bJa8*`J!8@aT@RRRRRR[B?#{RP{#_?#{R{#_?#{R(@\@>{#_?#{c<(@R\@}{#_?#{#R+{#_?#{$Rm{#_?#{A8S&C,BT&RRRRqT@9!RAӀ7 A8@,BBaTSA{è#_!2 !a^@!TR!B*R!B?#{" & @jTS{`2cc<RRRR*R7 @{¨#_!`^@R!@R_?#{S4 @T 4c&3@ݗRջr Qs~S~SK! | 7R[#kTc>RskTc>5FRRaRqlT^@ 7R![BcC#@SA{Ũ#_! A)!@RSA[BcC#@{Ũ#_*R![B#@`cC?#{S[5 @4c&sݗR!@ջr?kATk @ Q9S*~SKa |! 7R @ 7@A 7@*RRRRR*` 7RR?kT-k+Tzx*RRRZ*R36*!cCkDsE*SA[B{ƨ#_;*RDRRaR*7 A)RRRRR*7R*RDRRaR*`7 @!scCkDsE*!*!!cCsE?#{ `!`! @{¨#_?#{S@A7"@A B7[@yb*4 &R"@eB)`R RR@yRyRRR[B*SA{è#__?#{@B{#_?#{ @a@A\@bB!`@`@R @{¨#_?#{S&R4TD@CAp6D`R D`Rqs?qaz3N@y?kT*RNySA@{è#_?#{RS*R 7RRR@7RqRRaRSA{¨#_?#{A8SC,BR@@[RuRRRaR*`^@_qm TRa^@ R h$RRg^@R!R*@ 7@9r` Tqa TRR**7*@Jy` @@07v@ (@c,B@0@`c@@e(@@d@@@!*`^@5@!B@[B![BA8@,BBT*SA{Ĩ#_`^@tA!"R*`~!@*`^@!`^@t!t[?#{S@*@5RRRR* 7RRCR*RRR*^@7ABRRR@RR@yy* 7RR*`7RBRJ@yң@Bc@^@CRB@^@(T!R@@*SA@{è#_*!*SA@{è#_! @?#{ !@\@b@B@`@`@ @{¨#_?#{B!{#_?#{{#_......asix{&"F@   BW =na- V 1b0r +w w `W w< < 790  UP *w w +~ *k 3`(`(`(`(`(    `(BMCR_RESET timeout on phy_id %d asixinvalid hw address, using random Asix MDIO Bususb-%03d:%03dCould not register MDIO bus (err %d) Could not find PHY Could not connect PHY Could not find internal PHY HG20F9 USB 2.0 EthernetASIX AX88178 USB 2.0 EthernetLinux Automation GmbH USB 10Base-T1LASIX AX88772B USB 2.0 EthernetASIX AX88772 USB 2.0 EthernetHawking UF200 USB EthernetNetgear FA-120 USB EthernetDLink DUB-E100 USB EthernetASIX AX8817x USB 2.0 EthernetFailed to read reg index 0x%04x: %d Failed to write reg index 0x%04x: %d Failed to enable software MII access Failed to enable hardware MII access asix_rx_fixup() Data Header synchronisation was lost, remaining %d asix_rx_fixup() Bad Header Length 0x%x, offset %d asix_rx_fixup() Bad SKB Length %d, %d Error reading PHY_ID register: %02x Failed to send software reset: %02x Error reading RX_CTL register: %02x Failed to write RX_CTL mode to 0x%04x: %02x Error reading Medium Status register: %02x Failed to write Medium Mode mode to 0x%04x: %02x Failed to write GPIO value 0x%04x: %02x Failed to read EEPROM at offset 0x%02x. Failed to enable EEPROM write Failed to write EEPROM at offset 0x%02x. Failed to disable EEPROM write asix22-Dec-2011Disconnecting from phy %s Failed to read MAC address: %d Failed to read software interface selection register: %d Interface mode not supported by driver Could not allocate MDIO bus Asix MDIO Bususb-%03d:%03dCould not register MDIO bus registered mdio bus %s Write IPG,IPG1,IPG2 failed: %d %s:%02xCould not connect to PHY device %s Connected to phy %s deregistering mdio bus %s ASIX AX88172A USB 2.0 Ethernetlicense=GPLdescription=ASIX AX8817X based USB 2.0 Ethernet Devicesversion=22-Dec-2011author=David Hollissrcversion=991DBD74C18D19AF121DDC6alias=usb:v33F7p0004d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v066Bp20F9d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0B95p172Ad*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0B95p7E2Bd*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0DB0pA877d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v14EApAB11d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0B95p772Ad*dc*dsc*dp*ic*isc*ip*in*alias=usb:v05ACp1402d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v050Dp5055d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v04BBp0930d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v1737p0039d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v2001p1A02d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v2001p3C05d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v07D1p3C05d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v1557p7720d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v13B1p0018d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0789p0160d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0B95p1780d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0B95p7720d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0B95p772Bd*dc*dsc*dp*ic*isc*ip*in*alias=usb:v17EFp7203d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v04F1p3008d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v1631p6200d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v1189p0893d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v07AAp0017d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0DF6p061Cd*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0DF6p0056d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v6189p182Dd*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0411p006Ed*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0411p003Dd*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0557p2009d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v08DDp0114d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v08DDp90FFd*dc*dsc*dp*ic*isc*ip*in*alias=usb:v07B8p420Ad*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0B95p1720d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v2001p1A00d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v0846p1040d*dc*dsc*dp*ic*isc*ip*in*alias=usb:v077Bp2226d*dc*dsc*dp*ic*isc*ip*in*depends=usbnetintree=Yname=asixvermagic=6.6.0-sineware-prolinux-2 SMP preempt mod_unload aarch64drivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cdrivers/net/usb/asix_common.cGNUGNUzs7nD g5*&LinuxLinuxGCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0   &(3,GH]k}D lx( (H$l$&9<8K4Z h8 <{t ( 4 D L$ Xt 8 H t#@6LDXS9\oP8P ` P `0 =@KXd9 t 9  9    8DX949h9BY(j|<Zx,J222$9P$2T2H3G3xaL4o6~8T9 P9l#....0G.Eu.Z.o..-.[.....A.,o.A.V.k.'.U.... .;.i.(.=.R.g!.|O.}....5.c r ' { ; B9S \ e x    <, $(    d% @  " + T/; O [ $j |         % 1  H f $t  4  +(     #   . @ P n ~ $' +      d& , t*? Q h y       p -) .;Jih!$$2(0ATat, [h+ ,"!8H[ex!@+,,--;,P_fp1P-l+ asix_devices.c$xax88772_mac_configax88772_stopax88772_mac_link_upax88772_mac_link_downax88772_resetax88772a_hw_resetax88772_hw_resetax88772_suspendax88772_resumeax88772_ethtool_get_sset_countax88772_ethtool_get_stringsax88772_ethtool_set_pauseparamax88772_ethtool_get_pauseparamax88172_link_reset$dasix_phy_resetax88178_unbindasix_get_linkax88178_change_mtuasix_ioctlax88172_set_multicastasix_driver_initasix_resumeasix_suspendasix_driver_exitasix_statusasix_set_netdev_dev_addrax88772_bindax88172_bindax88178_bindax88178_link_resetax88178_resetax88772_unbindproductsax88772_netdev_opsax88772_ethtool_opsax88772_phylink_mac_opsax88172_netdev_opsax88172_ethtool_opsax88178_netdev_opsax88178_ethtool_opsax8817x_infonetgear_fa120_infodlink_dub_e100_infohawking_uf200_infoax88178_infoax88772b_infoax88772_infohg20f9_infolxausb_t1l_infoasix_driver__UNIQUE_ID___addressable_cleanup_module507__UNIQUE_ID___addressable_init_module506__UNIQUE_ID_license511__UNIQUE_ID_description510__UNIQUE_ID_version509__UNIQUE_ID_author508asix_common.casix_check_host_enable__asix_mdio_read__asix_mdio_write.L144721.L144722.L144723.L144724.L144725.L144726.L144727.L144728.L144729.L1447210.L1447211.L1447212ax88172a.cax88172a_statusax88172a_rx_fixupax88172a_stopax88172a_adjust_linkax88172a_reset_phy.isra.0ax88172a_bindax88172a_resetax88172a_unbindax88172a_netdev_opsax88172a_ethtool_opsasix.mod.c__UNIQUE_ID_srcversion377__UNIQUE_ID_alias376__UNIQUE_ID_alias375__UNIQUE_ID_alias374__UNIQUE_ID_alias373__UNIQUE_ID_alias372__UNIQUE_ID_alias371__UNIQUE_ID_alias370__UNIQUE_ID_alias369__UNIQUE_ID_alias368__UNIQUE_ID_alias367__UNIQUE_ID_alias366__UNIQUE_ID_alias365__UNIQUE_ID_alias364__UNIQUE_ID_alias363__UNIQUE_ID_alias362__UNIQUE_ID_alias361__UNIQUE_ID_alias360__UNIQUE_ID_alias359__UNIQUE_ID_alias358__UNIQUE_ID_alias357__UNIQUE_ID_alias356__UNIQUE_ID_alias355__UNIQUE_ID_alias354__UNIQUE_ID_alias353__UNIQUE_ID_alias352__UNIQUE_ID_alias351__UNIQUE_ID_alias350__UNIQUE_ID_alias349__UNIQUE_ID_alias348__UNIQUE_ID_alias347__UNIQUE_ID_alias346__UNIQUE_ID_alias345__UNIQUE_ID_alias344__UNIQUE_ID_alias343__UNIQUE_ID_alias342__UNIQUE_ID_alias341__UNIQUE_ID_alias340__UNIQUE_ID_alias339__UNIQUE_ID_depends338__UNIQUE_ID_intree337__UNIQUE_ID_name336__UNIQUE_ID_vermagic335_note_15_note_14mdiobus_alloc_sizertnl_unlockusbnet_set_msglevelusbnet_write_cmdasix_get_wolasix_write_medium_modedevm_kmalloceth_mac_addrskb_putasix_read_rx_ctl__this_modulememmovemii_link_oksnprintfasix_set_eepromusb_register_driverphy_connectcleanup_moduleusbnet_change_mtuusbnet_write_cmd_asyncnet_selftest_get_stringsphy_attached_infomemcpykfreephy_ethtool_set_link_ksettingseth_validate_addrusbnet_unlink_rx_urbsusleep_range_statenetdev_warnasix_rx_fixup_internalusbnet_set_link_ksettings_miiasix_sw_resetnetdev_errinit_modulephylink_createasix_mdio_bus_readdev_addr_modusbnet_get_msglevelmii_check_mediausbnet_openasix_read_phy_addrusbnet_skb_returngenphy_resume__stack_chk_failusbnet_tx_timeoutphylink_suspendusbnet_get_link_ksettings_miiusbnet_read_cmdasix_read_medium_statusasix_mdio_read_nopmskb_copy_expandphy_ethtool_get_link_ksettingsusbnet_write_cmd_nopmusbnet_get_linkphy_suspendasix_write_rx_ctlusbnet_suspendasix_set_multicastusbnet_start_xmitphylink_disconnect_phykfree_skb_reasoncrc32_lemutex_lockphylink_ethtool_get_pauseparamusbnet_read_cmd_nopmskb_pushusbnet_get_drvinfoax88172a_infousbnet_get_endpointsasix_get_eepromasix_write_gpiophylink_startmdiobus_freephylink_resumephylink_ethtool_set_pauseparameth_platform_get_mac_addressusb_deregisterasix_read_cmdmii_nway_restartphy_startasix_rx_fixup_commonasix_set_mac_addressmemsetusbnet_nway_resetasix_adjust_linkphylink_stopphy_print_statusdev_get_tstats64__netdev_alloc_skbnet_selftestmdiobus_unregisterasix_mdio_write_nopmstrscpymutex_unlockasix_tx_fixupusbnet_update_max_qlenusbnet_stop__const_udelaygeneric_mii_ioctlasix_write_cmdmdiobus_get_phyusbnet_disconnectphy_ethtool_nway_resetphylink_destroy__mdiobus_registerrtnl_lockusbnet_link_changeget_random_bytesusbnet_probeasix_rx_fixup_common_freekmalloc_traceasix_mdio_bus_writedev_kfree_skb_any_reasonphy_stopasix_set_wolnet_selftest_get_countphy_do_ioctl_runningusbnet_resumeasix_write_cmd_asyncphy_disconnectmsleep__kmallocmii_ethtool_gsetkmalloc_cachesnetdev_info__mod_usb__products_device_tableasix_get_drvinfoasix_get_eeprom_lenphylink_connect_phyP dx (8D"Tht"  $4@h 0p ""$8\  "4H`lp8\$4l+x     (       ,     4 x    d   0  0 &  , 4 T  \      Px x DD $ X( X0 h8 hdlpt* 4Px x x   <D L PXdhp t x   "4H+P+\`x +  ( 8 Hh++""4%8@%8D$(x+  @l  (T dl"|"++( <+"+0+H\+p+++++ (04<DLT  $(<D 8 8 ` `T h8` p  ,d    `        D! 0H! 0L!! ! !!!""""8#t####$h$ x$ $$ X$ X$$ $$$$$$,% 80% 84%@% D% H%%%%%&  & (&4& 8& <&L& T& X&`&|&&&&& 8& 8&& ' 'P'T'X'\'' ' '' ' ' ( ( ( (<(@(L(P(( 8( 8(( 0( 0(L) \)p)) 0) 0)))))(* 8,* 80*8* h@* hH*T*"* +X+,, , ,- - -(--- 8- 8-4.#.. . ....(/ ,/ 0//#/0 ,0"D0"p0 0 0 000 1 <1T1 X1 \11 1 11 1 11 1 111 81 812 @ 2 @2t2223 P3 P 3&(303!3334"44"84p4t4%04%04444 4 5@5p555555 5 5 (5 (55555 X5 X6&6 p6 p6$6\6 d6 h66 86 8666 6 66 6 667"7$787@7"`7 7 7777 7 78H38H38,8 08 48&@8H8h8 pl8 pp88 8 88 8 8&888 ( ( $_ `d$a$`%(b0&4c< '@dH'LeT(Xf`p*dgl,phx-|i.j (  ( 0 H 8  (HPXh()0l8H@H HP, ( 0P X`pt ( )P X      ( 0 @ t h 8 x  p (       )   (   ( H `h      ( H h     @ @( H h      ( H h      @(H h  8    08@` hpx (8  @ PP8 X`h  p8  (` p  0 8    0P X (8@0(HPX`hp)p L486222.symtab.strtab.shstrtab.rela.text.rela.init.text.rela.exit.text.rela__bug_table.rela.data.rela.exit.data.rela.init.data.rela.gnu.linkonce.this_module.init.plt.text.ftrace_trampoline.rela.rodata.rodata.str1.8.modinfo.rodata.str.note.gnu.property.note.gnu.build-id.note.Linux.bss.note.GNU-stack.comment @8@3+494&@(;h9$6@HK9F@@\ :W@X g0;b@ w8;r@ @;@@@00????@`2]d2flhm m$n0&Dn+Dn;0Dnn   8D