- 在react中使用redux
土豆切成丝
reactJavaScriptreact.js前端框架
一、项目搭建1.react项目搭建npxcreate-react-appapp2.安装reduxnpmiredux二、创建store①store/index.jsimport{createStore,combineReducers}from'redux'functionnum(state=0,action){console.log('action',action);switch(action.ty
- Xposed模块 -- Hook函数参数
web安全工具库
安卓逆向Xposed模块安卓逆向
安卓系统7.1搭建Xposed环境安卓逆向--Xposed模块编写安卓逆向--Jeb动态调试一、根据以前的课程,我们通过抓包分析,知道了如下的关键函数packagecom.dodonew.online.http;importandroid.text.TextUtils;importandroid.util.Log;importcom.dodonew.online.util.DesSecurity;
- xposed-hook-反射
aπ
文章
xposedhook反射不介绍介绍hook经验如何找怎么写有时间再写(想想怎么深入的写,找几个app,hook一下,写写过程,谈谈经验…)
- iOS剪贴板同步到Windows剪贴板(无需安装软件的方案)
摘要剪贴板同步能够提高很多的效率,免去复制、发送、复制、粘贴的步骤,只需要在手机上复制,就可以直接在电脑上ctrl+v粘贴,这方面在Apple设备中是做的非常好的,Apple设备之间的剪贴板同步功能(UniversalClipboard)确实非常方便,它可以在iPhone、iPad和Mac之间无缝传输剪贴板内容,从而大大提高工作效率。但是,iPhone如何和Windows剪贴板同步呢?其实方案有很
- xposed 03 - hook字段与一般方法
二手的程序员
xposed逆向前端java
本文主要讨论一下如何hook字段与方法hook字段有两种方式:使用反射使用xposedapi由于xposed模块也运行在app进程中,所以我们可以将app的代码当作自己的,直接反射访问。Hook静态字段与成员字段测试代码:package com.example.hooktargeclass HookTarget2 { private var str: String = "hello"
- Xposed-Hook
奶龙牛牛
android
配置Xposed模块的AndroidManifest.xml:在app/src/main/assets创建一个xposed_init文件。xposed_init文件是Xposed模块必需的一个配置文件,它用来指定模块的入口类。这个文件需要包含你的Xposed模块的主类的完整类名(包含包名):your.package.name.MainHookapp/build.gradle配置一下:depende
- SpringBoot知识点总结-DX的笔记
钊兵
Javaspringbootjava
什么是SpringBoot?SpringBoot是由Pivotal团队提供的全新框架目的是用来简化新Spring应用的初始搭建以及开发过程该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(rapidapplicationdevelopment)成为领导者。SpringBoot并不是对Spring功能上的增强
- python必读书单
Vin0sen
python开发语言
文章目录{编程入门}{编程进阶}{算法基础}{Web开发}{网络编程}{爬虫}{安全}{数据分析}{数据科学}{数据挖掘}{机器学习}{深度学习}{其他方向}{编程入门}父与子的编程之旅:与小卡特一起学Python[HOT]Python2.7和孩子一起玩编程Python2.7零压力学PythonPython3.0,但也指出了如何修改示例,以支持Python2.0Python编程:从入门到实践[HO
- python正则表达式详解
hNicholas
Python
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的。下面,我来介绍一下python中的正则表达式是怎么使用的。首先,python中的正则表达
- DREAMFUSION: TEXT-TO-3D USING 2D DIFFUSION
于初见月
paper计算机视觉
ABSTRACTRecentbreakthroughsintext-to-imagesynthesishavebeendrivenbydiffusionmodelstrainedonbillionsofimage-textpairs.Adaptingthisapproachto3Dsynthesiswouldrequirelarge-scaledatasetsoflabeled3Ddataande
- PyQt4学习笔记0】QtGui.QApplication
烛火萤辉
#PyQt4学习笔记pyqtpythonwindows
目录1.主要功能2.创建实例3.主要方法和属性a.设置应用程序属性b.样式表c.窗口管理d.事件循环e.其他f.设置全局鼠标光标样式4.退出应用程序5.示例代码6.注意事项在PyQt4中,QtGui.QApplication是一个非常重要的类,它代表了整个GUI应用程序。它是所有PyQt4应用程序的核心,主要用于管理应用程序的资源和事件循环。我们可以通过QApplication来做一些全局设置:如
- IM 即时通讯系统-51-MPush开源实时消息推送系统
老马啸西风
IM开源javaIM分布式
IM开源系列IM即时通讯系统-41-开源野火IM专注于即时通讯实时音视频技术,提供优质可控的IM+RTC能力IM即时通讯系统-42-基于netty实现的IM服务端,提供客户端jar包,可集成自己的登录系统IM即时通讯系统-43-简单的仿QQ聊天安卓APPIM即时通讯系统-44-仿QQ即时通讯系统服务端IM即时通讯系统-45-merua0oo0IM分布式聊天系统IM即时通讯系统-46-OpenIM提
- Mybatis-plus缓存
康惠桀
mybatis缓存
mybatis-plus缓存MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上提供了更多的便利性和强大的功能,包括但不限于分页、条件构造器、通用Mapper、代码生成器等。MyBatis-Plus也内置了基础的缓存功能,但需要注意的是,MyBatis-Plus本身并不提供复杂的缓存机制,例如二级缓存。不过,你可以通过集成第三方缓存框架或者使用MyBatis-Plus提
- openssl 静态编译
yong1585855343
c语言ssl
1.下载openssl各版本下载https://openssl-library.org/source/old/index.html2.静态编译./config-fPICno-sharedmake-j4编译后的静态文件在[chen@localhostopenssl-1.1.1g]$ls|grep'\.a'libcrypto.alibssl.a编译后的执行文件在./apps/openssl#eg:[c
- python爬虫百度贴吧代码大全_python爬虫实战(2)--爬取百度贴吧
weixin_39676633
#-*-coding:utf-8-*-#---------------------------------------#程序:百度贴吧爬虫#作者:lzhc#日期:2017-12-11#语言:Python2.7#操作:输入网址后自动只看楼主并保存到本地文件#功能:将楼主发布的内容打包txt存储到本地。#---------------------------------------importstri
- MacBook使用——彻底卸载并删除软件:NTFS for Mac
冰河渔夫
MacBookMacOS
问题之前因MacBook读写NTFS格式移动硬盘,我安装并使用了ParagonNTFSforMac,试用期结束后将其从【应用程序】中卸载移除了。但之后每次开机启动时,系统还是会弹出【激活】通知,如下图解决Step1、在用户目录下的Library目录中寻找软件相关的目录和文件、并删除主要在下面2个目录中:~/Library/ApplicationSupport~/Library/Preference
- Omnissa Unified Access Gateway 2412 - 远程安全的应用程序访问
虚拟化
OmnissaUnifiedAccessGateway2412-远程安全的应用程序访问ahardenedLinuxbasedvirtualsecurityappliancedesignedtoprotectremoteuseraccesstoend-usercomputingresourcessuchasvirtualdesktopsandapplications.请访问原文链接:https://
- flutter刷新页面_Flutter实现页面切换后保持原页面状态的3种方法
两只妖精同上树
flutter刷新页面
前言:在Flutter应用中,导航栏切换页面后默认情况下会丢失原页面状态,即每次进入页面时都会重新初始化状态,如果在initState中打印日志,会发现每次进入时都会输出,显然这样增加了额外的开销,并且带来了不好的用户体验。在正文之前,先看一些常见的App导航,以喜马拉雅FM为例:它拥有一个固定的底部导航以及首页的顶部导航,可以看到不管是点击底部导航切换页面还是在首页左右侧滑切换页面,之前的页面状
- unocss 添加支持使用本地 svg 预设图标,并支持更改大小
TangAcrab
unocssminiapp
安装pnpminstall@iconify/utils在配置文件unocss.config.ts:presets>presetIcons选项中通过FileSystemIconLoader加载本地图标,并指定目录。importpresetWeappfrom'unocss-preset-weapp'import{extractorAttributify,transformerClass}from'un
- 2、BTP与BAS区别
xiaoqiutong
笔记
BTP(BusinessTechnologyPlatform)和BAS(BusinessApplicationStudio)是SAP提供的两个不同的产品,用于支持企业应用程序的开发和部署。BTP是一个整合的技术平台,旨在为企业提供一系列的工具、服务和解决方案,以支持他们的数字化转型和创新。BTP包括多个组件,如SAPCloudPlatform、SAPHANA数据库、SAPAnalyticsClou
- Maven 三种项目打包方式:POM、JAR 和 WAR 的区别详解
一休哥助手
javamavenjarjava
一、Maven项目的打包方式简介Maven项目有多种打包方式,定义在pom.xml文件中的标签里。最常见的打包类型有以下几种:POM(ProjectObjectModel):用于聚合项目和管理多模块项目的父项目。JAR(JavaARchive):用于打包Java应用程序的常见格式,主要用于打包库和可执行的Java程序。WAR(WebApplicationArchive):用于打包JavaWeb应用
- 【异常】Python环境中没有安装 `openpyxl` 模块提示ModuleNotFoundError: No module named ‘openpyxl‘
本本本添哥
Python1024程序员节
一、报错内容D:\Project\xxx\.venv\Scripts\python.exe-Xpycache_prefix=D:\Users\xxx\AppData\Local\JetBrains\PyCharmCE2024.2\cpython-cache"E:/PyCharmCommunityEdition2024.2.2/plugins/python-ce/helpers/pydev/pyde
- Android Audio基础(20)——AudioTrack音频控制
yyc_audio
音频android音视频驱动开发
AudioTrack是应用用于播放音频数据的类,可以使用set方法设置音频参数,然后使用start来启动播放。而pause和stop则是用于控制播放过程的方法。不管APP使用什么接口播放音频文件,最终都是由AudioTrack实现。一、源码分析1、主要方法构造函数:创建AudioTrack时调用。play():播放音频文件。pause():暂停播放音频文件。stop():停止播放音频文件。flus
- Jmeter - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 上篇(详解教程)_jmeter
2401_87378238
jmeter
Unlessrequiredbyapplicablelaworagreedtoinwriting,softwaredistributedundertheLicenseisdistributedonan“ASIS”BASIS,WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.SeetheLicenseforthespecifi
- MySQL基本操作
m-TT
jshtml/css前端mysql数据库javascript
目录一.Express框架1.前后端交互(1)在服务器端进行跨域设置:安装、配置cors模块(2)创建自己的路由文件:路由中间件——接口文件(API)(3)前后端数据的传输:(4)在项目中配置自定义的路由文件:app.js中配置二.案例:1.需求:(1)客户端:注册—->登录—->主页(2)服务器端接口:三.接口测试1.ApiPost:(1)新建目录:目录名建议是项目名称2.postman:3.测
- express反向代理中间件http-proxy-middleware
羊二哥
nodenode
http-proxy-middleware用于把请求代理转发到其他服务器的中间件。varexpress=require('express');varproxy=require('http-proxy-middleware');varapp=express();app.use('/api',proxy({target:'http://localhost:4000/',changeOrigin:tru
- iOS 进阶必读 - 收藏集 - 掘金
weixin_33743880
移动开发runtimexcode
深入研究Block捕获外部变量和__block实现原理-掘金前言Blocks是C语言的扩充功能,而Apple在OSXSnowLeopard和iOS4中引入了这个新功能“Blocks”。从那开始,Block就出现在iOS和Mac系统各个API中,并被大家广泛使用。一句话来形容Blocks,带有自动变量(局...神经病院Objective-CRuntime住院第二天—消息发送与转发-掘金前言现在越来越
- 【爬虫】使用 Scrapy 框架爬取豆瓣电影 Top 250 数据的完整教程
web15085096641
爬虫scrapy
前言在大数据和网络爬虫领域,Scrapy是一个功能强大且广泛使用的开源爬虫框架。它能够帮助我们快速地构建爬虫项目,并高效地从各种网站中提取数据。在本篇文章中,我将带大家从零开始使用Scrapy框架,构建一个简单的爬虫项目,爬取豆瓣电影Top250的电影信息。Scrapy官方文档:ScrapyDocumentation豆瓣电影Top250:豆瓣电影Top250本文的爬虫项目配置如下:系统:Windo
- Express 入门之Router - worldtree_keeper的专栏 - CSDN博客
IT淘金者
印象笔记收藏JavaScriptExpress
要了解Router我们需要先知道到Application,首先,每一个express实例本身内部就内建了router,所以我们先从简单的下手,先使用application;另外这里我们只选择get方法,作为我们Router.Method,之所以使用get是因为它足够简单;精确匹配形式1.get有很多种用法 varexpress=require("express");varapp=express()
- Uni-app基本功能介绍
StoneMind
uni-app
Uni-app是一个基于Vue.js的跨平台开发框架,可以让开发者使用同一套代码构建iOS、Android和Web应用。本篇博客将带你深入了解Uni-app的特点、优势以及如何开始使用它进行跨平台开发。简介:在移动应用开发领域,跨平台开发已经成为了一种趋势。开发者不再需要为不同平台编写不同的代码,而是可以使用同一套代码构建多个平台的应用。Uni-app就是一款优秀的跨平台开发框架,它基于Vue.j
- java短路运算符和逻辑运算符的区别
3213213333332132
java基础
/*
* 逻辑运算符——不论是什么条件都要执行左右两边代码
* 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的
* 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。
*
* 并联电路两个开关只要有一个开关闭合,电路就会通。
* 类似于短路或(||),只要有其中一个为true(开关闭合)是
- Java异常那些不得不说的事
白糖_
javaexception
一、在finally块中做数据回收操作
比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。
JDBCAgent jdbc = new JDBCAgent();
try{
jdbc.excute("select * from ctp_log");
}catch(SQLException e){
...
}finally{
jdbc.close();
- utf-8与utf-8(无BOM)的区别
dcj3sjt126com
PHP
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如
- JAVA Annotation之定义篇
周凡杨
java注解annotation入门注释
Annotation: 译为注释或注解
An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa
- tomcat的多域名、虚拟主机配置
g21121
tomcat
众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。
很多朋友搜索的内容基本是告诉我们这么配置:
在Engine标签下增面积Host标签,如下:
<Host name="www.site1.com" appBase="webapps"
- Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )
510888780
linuxcapistrano
1.ssh -v hdfs@192.168.18.133 出现
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
错误
运行状况如下:
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuratio
- log4j的用法
Harry642
javalog4j
一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中
- mysql、sqlserver、oracle分页,java分页统一接口实现
aijuans
oraclejave
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
- Hessian 简单例子
antlove
javaWebservicehessian
hello.hessian.MyCar.java
package hessian.pojo;
import java.io.Serializable;
public class MyCar implements Serializable {
private static final long serialVersionUID = 473690540190845543
- 数据库对象的同义词和序列
百合不是茶
sql序列同义词ORACLE权限
回顾简单的数据库权限等命令;
解锁用户和锁定用户
alter user scott account lock/unlock;
//system下查看系统中的用户
select * dba_users;
//创建用户名和密码
create user wj identified by wj;
identified by
//授予连接权和建表权
grant connect to
- 使用Powermock和mockito测试静态方法
bijian1013
持续集成单元测试mockitoPowermock
实例:
package com.bijian.study;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import or
- 精通Oracle10编程SQL(6)访问ORACLE
bijian1013
oracle数据库plsql
/*
*访问ORACLE
*/
--检索单行数据
--使用标量变量接收数据
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
select ename,sal into v_ename,v_sal
from emp where empno=&no;
dbms_output.pu
- 【Nginx四】Nginx作为HTTP负载均衡服务器
bit1129
nginx
Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:
负载均衡的好处
增加可用资源
增加吞吐量
加快响应速度,降低延时
出错的重试验机制
Nginx主要支持三种均衡算法:
round-robin
l
- jquery-validation备忘
白糖_
jquerycssF#Firebug
留点学习jquery validation总结的代码:
function checkForm(){
validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID
errorElement :"span",// 使用"div"标签标记错误, 默认:&
- solr限制admin界面访问(端口限制和http授权限制)
ronin47
限定Ip访问
solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。
可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。
我们先看如何通过tomcat配置http授权限制。
第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如:
<userusername="ad
- 多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
bylijinnan
java多线程
public class IncDecThread {
private int j=10;
/*
* 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
* 两个问题:
* 1、线程同步--synchronized
* 2、线程之间如何共享同一个j变量--内部类
*/
public static
- 买房历程
cfyme
2015-06-21: 万科未来城,看房子
2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675
2015-06-27: 房子首付,签完合同
2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。
首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-
- [军事与科技]制造大型太空战舰的前奏
comsci
制造
天气热了........空调和电扇要准备好..........
最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界..........
所以,我们不得不关
- dateformat
dai_lm
DateFormat
"Symbol Meaning Presentation Ex."
"------ ------- ------------ ----"
"G era designator (Text) AD"
"y year
- Hadoop如何实现关联计算
datamachine
mapreducehadoop关联计算
选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。
以关联计算为例。
假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?
&nbs
- 用户模型中修改用户信息时,密码是如何处理的
dcj3sjt126com
yii
当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。
场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。
面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这
- 中文 iOS/Mac 开发博客列表
dcj3sjt126com
Blog
本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。
本博客列表涉及的文章内容支持 定制化Google搜索,特别感谢 JeOam 提供并帮助更新。
本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢 lcepy 提供自动转换脚本。这里有导入教程。
- js去除空格,去除左右两端的空格
蕃薯耀
去除左右两端的空格js去掉所有空格js去除空格
js去除空格,去除左右两端的空格
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g
- SpringMVC4零配置--web.xml
hanqunfeng
springmvc4
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。
ServletContainerInitializer:启动容器时负责加载相关配置
package javax.servlet;
import java.util.Set;
public interface ServletContainer
- 《开源框架那些事儿21》:巧借力与借巧力
j2eetop
框架UI
同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。
故事1:巧借力,乌鸦也可以吃核桃
有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。
核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,
- JQuery EasyUI 验证扩展
可怜的猫
jqueryeasyui验证
最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。
以下内容只需要在公用js中添加即可。
使用类似于如下:
<input class="easyui-textbox" name="mobile" id="mobile&
- 架构师之httpurlconnection----------读取和发送(流读取效率通用类)
nannan408
1.前言.
如题.
2.代码.
/*
* Copyright (c) 2015, S.F. Express Inc. All rights reserved.
*/
package com.test.test.test.send;
import java.io.IOException;
import java.io.InputStream
- Jquery性能优化
r361251
JavaScriptjquery
一、注意定义jQuery变量的时候添加var关键字
这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:
$loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的
二、请使用一个var来定义变量
如果你使用多个变量的话,请如下方式定义:
. 代码如下:
var page
- 在eclipse项目中使用maven管理依赖
tjj006
eclipsemaven
概览:
如何导入maven项目至eclipse中
建立自有Maven Java类库服务器
建立符合maven代码库标准的自定义类库
Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。
我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把
- 中国天气网省市级联页面
x125858805
级联
1、页面及级联js
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&l