- Flink Checkpoint 状态后端详解:类型、特性对比及场景化选型指南
ApacheFlink提供了多种状态后端以支持Checkpoint机制下的状态持久化,确保在故障发生时能够快速恢复状态并实现Exactly-Once处理语义。以下是几种常见状态后端的详细介绍及其对比情况,以及不同场景下的选型建议:1.MemoryStateBackend(内存状态后端)描述:MemoryStateBackend将状态数据存储在TaskManager的JVM堆内存中,并在Checkp
- Flink 状态管理设计详解:StateBackend、State、RocksDB和Namespace
lifallen
Flinkflink大数据数据库javaapache分布式
为什么需要StateBackend?——职责分离原则我们可以用一个银行的例子来类比:State(如ValueState,ListState)就像是你的银行卡。AbstractKeyedStateBackend就像是银行的整个后台系统(包括总服务器、数据库、风控系统、会计系统等)。你不能直接用一张塑料卡片去操作你的钱,你需要把卡片插入ATM机或交给柜员,由他们背后的银行系统来完成真正的存取款、转账等
- url scheme 实现跳转到小程序页面
stand_forever
小程序
获取小程序scheme码,适用于短信、邮件、外部网页等拉起小程序的业务场景。通过该接口,可以选择生成到期失效和永久有效的小程序码参考文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-scheme/urlscheme.generate.html/***获取urlscheme接口*/publicfu
- YFCMF-TP6 改后台模块路径方法
huluang
php
1、创建表单,表民phpthinkcrud-tbeian_dignji-u12、app路径controllerlang/zh-cnmodelvalidateview以及public/assets/js/backend/找到beian_dignji每个路径下创建需要增加的文件夹名称,如beian,并将以上目录的文件或文件夹剪切到当前文件及下3、编辑表fa_auth_rule规则名称主要为105,上级
- 开源的大语言模型(LLM)应用开发平台Dify
概述Dify是一个开源的大语言模型(LLM)应用开发平台,结合了后端即服务(Backend-as-a-Service)和LLMOps的理念,旨在帮助开发者快速构建生产级的生成式AI应用。它通过直观的界面、强大的功能和灵活的部署方式,降低了AI应用开发的门槛,即使是非技术人员也能参与应用的定义和数据运营。本文档将指导您了解Dify的核心功能、安装部署、应用创建及常见使用场景。Dify简介Dify(D
- postgresql之语法解析 浅析
happytree001
pgpostgresql
一、pg语法简介1.1语法文件结构语法.y文件和词法.l文件结构差不多,也是通过%%分成了三个部分:声明部分、语法规则部分、C代码部分。src/backend/parser/gram.y####声明部分%{C代码头文件,变量声明等(此范围内的内容原样输出到文件中)#include"postgres.h"...%}#变量声明%union{core_YYSTYPEcore_yystype;/*thes
- 【Git】报错:git config --global http.sslBackend “openssl“
问题解决报错:gitconfig--globalhttp.sslBackend“openssl”解决方法:gitconfig--globalhttp.sslBackend"openssl"之后再push即可正常提交。原因分析系统环境不支持OpenSSL后端Git在某些平台(如Linux)默认使用Gnutls而非OpenSSL,强制配置为OpenSSL会触发报错unsupportedsslbacke
- 工业日志AI大模型智能分析系统-后端实现
目录项目主要架构完整系统架构主要系统架构解析图思路解析模板json示例主要核心代码示例LangGraph工作流(backend/ai/workflows.py)LangChainAgents(backend/ai/agents.py)Django视图(backend/core/views.py)配置(config.py)响应示例关键优势项目主要架构LangGraph、LangChain、Djang
- 探秘`nanomsg-python`: Python中的高效通信库
探秘nanomsg-python:Python中的高效通信库nanomsg-pythonnanomsgwrapperforpythonwithmultiplebackends(CPythonandctypes)shouldsupport2/3andPypy项目地址:https://gitcode.com/gh_mirrors/na/nanomsg-python在Python的世界里,找到一个既能满
- Docker部署项目无法访问,登录超时完整排查攻略
Orlando chrono
DevOpsnginx服务器运维
项目背景:迁移前后端应用,prod环境要求保留443端口,开发环境37800端口,后端容器端口为8000,前端为80,fastAPI对外端口为41000生产环境部署在VM01,开发环境部署在VM03,在VM01配置nginx转发[
[email protected]]#dockerps|grepmig73fbafgc2811mig_backend-buildnum3"python./main.py"5d
- AI小智项目全解析:软硬件架构与开发环境配置
Despacito0o
ai语音助手人工智能硬件架构struts
AI小智项目全解析:软硬件架构与开发环境配置一、项目整体架构AI小智是一款基于ESP32的智能物联网设备,集成了语音交互、边缘计算等功能。整体系统架构如下:终端设备:ESP32模组作为核心通信方式:WebSocket实现实时音视频传输MQTT连接物联网后台管理系统HTTP进行系统间数据交换二、软件架构详解2.1后端技术栈#核心技术栈backend_stack={"语言":"Python","框架"
- (慎点/1w字+警告/刚入坑必看请自带水杯)后端入门玩家的第一个项目保姆级笔记包教包会
她是我的青春
项目学习javamavenintellij-idea
目前学习了项目的后端功能开发,针对前段时间的学习进行系统总结提升,根据项目开发流程总结1.资料中所给的前端界面是存放在/backend和/front之中,而springboot自带的是static,故需要做一层映射才可以访问到publicclasswebMvcConfigextendsWebMvcConfigurationSupport{@OverrideprotectedvoidaddResou
- Matplotlib 报错 AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘
解决办法一在代码开始的部分添加引用importmatplotlibmatplotlib.use('TkAgg')解决办法二降低matplotlib的版本,3.5.0版本及以下的都可以pipinstallmatplotlib==3.5.0官方文档指出:如果没有显式设置后端,Matplotlib会根据系统上可用的内容以及是否已运行GUI事件循环自动检测可用的后端。选择以下列表中第一个可用的后端:Mac
- 【软件工程】Waitress + Nginx 部署 Python Web 服务
meisongqing
nginxpythonWEB
下面是完整的Windows系统部署方案,使用Waitress作为WSGI服务器运行Python后端,Nginx作为反向代理同时提供前端服务:项目结构text复制下载myapp/├──backend/#Python后端│├──app.py#Flask应用入口│├──requirements.txt#Python依赖│└──api/#API模块├──frontend/#前端文件│├──index.ht
- YOLOv12_ultralytics-8.3.145_2025_5_27部分代码阅读笔记-autobackend.py
红色的山茶花
YOLO笔记深度学习
autobackend.pyultralytics\nn\autobackend.py目录autobackend.py1.所需的库和模块2.defcheck_class_names(names:Union[List,Dict])->Dict[int,str]:3.defdefault_class_names(data:Optional[Union[str,Path]]=None)->Dict[in
- Gravitino 开源项目安装与使用指南
Gravitino开源项目安装与使用指南项目地址:https://gitcode.com/gh_mirrors/gra/gravitino一、项目目录结构及介绍Gravitino是一个基于GitHub的数据探索与分析平台,它提供了强大的工具来帮助用户高效地处理和理解数据。以下是项目的主要目录结构及其简要介绍:gravitino/│├──backend#后端服务代码,负责处理数据请求和业务逻辑。│├
- 探索Actix-web REST API with JWT:构建高效安全的后端应用
郁蝶文Yvette
探索Actix-webRESTAPIwithJWT:构建高效安全的后端应用actix-web-rest-api-with-jwtAsimpleCRUDbackendappusingActix-web,DieselandJWT项目地址:https://gitcode.com/gh_mirrors/ac/actix-web-rest-api-with-jwt在当今的软件开发领域,构建一个既高效又安全的
- 阿里云API网关签名后端示例项目教程
廉艳含
阿里云API网关签名后端示例项目教程api-gateway-demo-sign-backend-java项目地址:https://gitcode.com/gh_mirrors/ap/api-gateway-demo-sign-backend-java项目介绍阿里云API网关签名后端示例项目(api-gateway-demo-sign-backend-java)是一个开源的Java项目,旨在帮助开发
- 新手开发者:前后端分离部署及其跨域解决方案
甘露寺
前端跨域部署前端持续部署
新手开发者:前后端分离部署及其跨域解决方案典型生产部署场景访问加载前端应用执行前端代码跨域请求用户前端服务器www.frontend.com请求后端APIwww.backend.com场景描述:前端:部署在GitHubPages(www.frontend.com)后端:部署在阿里云服务器(www.backend.com)用户:访问www.frontend.com跨域问题如何解决?方案一:CORS(
- Python包分发终极指南:深入掌握setuptools打包技术
Yant224
pythonpython打包setuptoolsPyPI发布Python分发wheel打包Python库开发
一、现代打包工具链架构1.打包生态系统演进现代标准旧版兼容源代码setuptools构建工具分发格式wheeleggpip安装2.核心组件关系#pyproject.toml声明构建系统(PEP518)[build-system]requires=["setuptools>=61.0.0","wheel"]build-backend="setuptools.build_meta"#setup.cfg
- ethers.js express vue2 定时任务每天凌晨2点监听合约地址数据同步到Mysql整理
穗余
全栈Web3web3
下面是一个完整的Ethers.js+Express+Vue2+MySQL实现方案,用于:每天凌晨2点监听某合约地址的Transfer事件,写入MySQL数据库,并展示每日NFT交易量图表(Vue2+ECharts)✅后端部分(Express+Ethers.js+MySQL)项目结构(后端部分):backend/├──abi/NFT_ABI.json├──db.js├──syncTransfers.
- StarRocks 日常运维及优化命令
shijiazhenghu
运维postgresqldatabase数据库
--StarRocks常用命令-------------------------------------SHOWPROC'/frontends'\G;SHOWPROC'/backends'\G;SHOWPROC'/statistic'\G;--showbroker;showproc'/brokers';sh./bin/start_broker.sh--daemonsystemctlstartsta
- Flink状态和容错-基础篇
有数的编程笔记
Flinkflink大数据
1.概念flink的状态和容错绕不开3个概念,statebackends和checkpoint、savepoint。本文重心即搞清楚这3部分内容。容错机制是基于在状态快照的一种恢复方式。但是状态和容错要分开来看。什么是状态,为什么需要状态?流计算和批计算在数据源上最大的区别是,流计算中的数据是无边界的,数据持续不断,而批计算中数据是有边界的,在计算时可以一次性将数据全部拿到。在流计算中无法拿到全部
- Python框架开发中的多态应用实战教程:构建可扩展的框架架构
一、多态:框架扩展的核心机制1.1框架与多态的关系框架通过定义抽象接口和扩展点,允许用户通过多态机制注入自定义实现:classStorageBackend(ABC):@abstractmethoddefsave(self,name:str,data:bytes):"""保存数据"""pass@abstractmethoddefload(self,name:str)->bytes:"""加载数据""
- Dify:让AI应用开发变得简单又高效
聪明的墨菲特i
AI知识人工智能DifyAI应用AILLM
Dify:让AI应用开发变得简单又高效在人工智能(AI)的世界里,Dify是一个非常受欢迎的开源平台,它可以帮助开发者快速构建和部署AI应用,即使是没有太多编程经验的小白也能轻松上手。一、Dify是什么?Dify是一个开源的大语言模型(LLM)应用开发平台。它结合了后端即服务(Backend-as-a-Service)和LLMOps的理念,旨在帮助开发者快速构建生产级的生成式AI应用。简单来说,D
- Vulkan 学习笔记16—集成 ImGUI
程序员Xu
Vulkan学习学习笔记chrome
Vulkan集成ImGUI学习笔记一、目录与文件部署从官网获取IMGUI代码库,在项目extern目录下新建imgui目录,将相关文件复制进去,构建出如下目录结构:.├──build├──extern│├──glfw│├──glm│└──imgui│├──backends││├──imgui_impl_glfw.cpp││├──imgui_impl_glfw.h││├──imgui_impl_vu
- python实现一个示波器仿真,可以改参数同步效果
YiWait
python开发语言
代码importsysimportnumpyasnpimportmatplotlib.pyplotaspltfrommatplotlib.backends.backend_qt5aggimportFigureCanvasQTAggasFigureCanvasfrommatplotlib.backends.backend_qt5aggimportNavigationToolbar2QTasNavig
- GoFrame的api层和model层的数据结构有什么区别,各有什么作用以及为什么这么设计?
神奇萝卜头
goframe电商项目数据结构golang
api/backend/rotation.gopackagebackendimport"github.com/gogf/gf/v2/frame/g"typeRotationReqstruct{g.Meta`path:"/backend/rotation/add"method:"post"summary:"轮播图的添加"PicUrlstring`json:"pic_url"v:"required#图
- mount.lustre: /dev/sdc has not been formatted with mkfs.lustre or the backend filesystem type is not
计算机辅助工程
linux服务器运维
在Linux系统中,如果你尝试挂载一个Lustre文件系统,但遇到了/dev/sdchasnotbeenformattedwithmkfs.lustreorthebackend的错误信息,这通常意味着你的磁盘分区还没有被格式化为Lustre文件系统。Lustre是一个高性能的分布式文件系统,通常用于大规模并行计算环境中。要解决这个问题,你需要按照以下步骤操作:创建文件系统首先,你需要使用mkfs.
- Burn 开源程序是下一代深度学习框架,在灵活性、效率和可移植性方面毫不妥协
struggle2025
深度学习人工智能pythonrust
一、软件介绍文末提供程序和源码下载Burn开源程序是下一代深度学习框架,在灵活性、效率和可移植性方面毫不妥协二、Performance性能因为我们相信深度学习框架的目标是将计算转化为有用的智能,所以我们将性能作为Burn的核心支柱。我们努力通过利用下述多种优化技术来实现最高效率。自动内核融合UsingBurnmeanshavingyourmodelsoptimizedonanybackend.Wh
- 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
[email protected] 出现
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