??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产黄色,四虎在线观看,国产精品久久久久国产精品日日 http://www.aygfsteel.com/littleq/category/33437.html<span style="color:pink">l于明白曄他们p的目光,当年的你们是否一P间有懈怠或有颓放,隄多久方能补上Q今P不再彷LQ?lt;/span></br>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-5862437-1");
pageTracker._trackPageview();
</script> zh-cn Sun, 19 Oct 2008 21:07:29 GMT Sun, 19 Oct 2008 21:07:29 GMT 60 代码找茬--Spring的事务学?/title> http://www.aygfsteel.com/littleq/archive/2008/10/19/235313.htmllittleQ littleQ Sun, 19 Oct 2008 08:49:00 GMT http://www.aygfsteel.com/littleq/archive/2008/10/19/235313.html http://www.aygfsteel.com/littleq/comments/235313.html http://www.aygfsteel.com/littleq/archive/2008/10/19/235313.html#Feedback 1 http://www.aygfsteel.com/littleq/comments/commentRss/235313.html http://www.aygfsteel.com/littleq/services/trackbacks/235313.html 关于Spring的事务学习,我觉得klyuan有一文章介l的很不错:http://www.javaeye.com/topic/78674 。从q篇文章里,我弄清楚了脏读,q读{概c?/span>
Spring的默认事务隔ȝ?span style="line-height: 18px; font-family: Tahoma">ISOLATION_DEFAULT ?strong>ISOLATION_READ_COMMITTED 提交读;默认事务传播行ؓ?span style="line-height: normal; font-family: Verdana">PROPAGATION_REQUIREDQ?span style="font-weight: normal">如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务?/font>
q里有个很有意思的事情Q想和大家一起分享一下?/span>
Class Sample {
private int id;
private String name;
// setters and getters
}
Class A {
public void functionA(Sample sample) {
// 事务处理Q更新sample
}
}
class B {
public void functionB(List samples) {
// 事务处理Q遍历samplesQ调用A的functionAҎ
}
}
代码我就不详l的写出来了Q大致的意思大家也应该能看明白Q事务的隔离U别和传播行为都是默认的。调用B的functionBҎQ大家觉得会出现什么问题?
--EOF--
Spring in action W二?br />
转自我的javaeyeQ?font face="Verdana">http://littlez.javaeye.com/admin/blogs/254980
]]> JS实现div自动滚动 http://www.aygfsteel.com/littleq/archive/2008/10/07/232903.htmllittleQ littleQ Tue, 07 Oct 2008 05:45:00 GMT http://www.aygfsteel.com/littleq/archive/2008/10/07/232903.html http://www.aygfsteel.com/littleq/comments/232903.html http://www.aygfsteel.com/littleq/archive/2008/10/07/232903.html#Feedback 4 http://www.aygfsteel.com/littleq/comments/commentRss/232903.html http://www.aygfsteel.com/littleq/services/trackbacks/232903.html 用JS实现div的自动滚动。代码如下:
1 < div id = " show " style = " overflow:hidden;height:210px; " >
2 </ div >
3 < script >
4 function startmarquee(lh,speed,delay) {
5 var t;
6 var oHeight = 210 ; /**/ /* * div的高?nbsp;* */
7 var p = false ;
8 var o = document.getElementById( " show " );
9 var preTop = 0 ;
10 o.scrollTop = 0 ;
11 function start() {
12 t= setInterval(scrolling,speed);
13 o.scrollTop += 1 ;
14 }
15 function scrolling() {
16 if (o.scrollTop % lh != 0 && o.scrollTop % (o.scrollHeight - oHeight - 1 ) != 0 ) {
17 preTop = o.scrollTop;
18 o.scrollTop+= 1 ;
19 if (preTop >= o.scrollHeight || preTop == o.scrollTop) {
20 o.scrollTop = 0 ;
21 }
22 }else {
23 clearInterval(t);
24 setTimeout(start,delay);
25 }
26 }
27 setTimeout(start,delay);
28 }
29 startmarquee(20 , 20 , 1500 );
30 /**/ /* *startmarquee(一ơ滚动高?速度,停留旉);* */
31 </ script >
32
推荐一本学习javascript的经典好书:深入出JavaScript(囄计算机科学丛?
]]> 回忆我的求职 http://www.aygfsteel.com/littleq/archive/2008/09/28/231667.htmllittleQ littleQ Sun, 28 Sep 2008 13:26:00 GMT http://www.aygfsteel.com/littleq/archive/2008/09/28/231667.html http://www.aygfsteel.com/littleq/comments/231667.html http://www.aygfsteel.com/littleq/archive/2008/09/28/231667.html#Feedback 5 http://www.aygfsteel.com/littleq/comments/commentRss/231667.html http://www.aygfsteel.com/littleq/services/trackbacks/231667.html 转眼又是国庆了,7天假期。还记得d国庆的时候,正是大四学生忙着扑ַ作的时候,校园招聘也逐渐q入高潮。那时候几个要好的兄弟Q很多都是准备考研Q也有好几个是考研和找工作两手都抓—我是其中一个。这是一件很痛苦的事情,每天早上很早去图书馆占位置Q一个杯子,几本书,除了吃饭上厕所Q就是把头埋在书里。遇C家公司有宣讲会了Q就会很痛苦的犹豫到底要不要厅R我们学院在郊区Q而宣讲会招聘会都是在市中心的本部校区?/span>
不管是考研q是扑ַ作,都要做好充的准备,Zq些ȝ很多书。考研我就不多说了Q因为在两者之间我最后还是选择了工作?/span>
<< E序员面试宝?/span> >> ?span style="color: #333399">?/span> java E序员面试宝?/span> ?/span> Q?span lang="zh-CN">前面q本主要收录的是 C?/span>c++的题目?/span>仔细?span lang="zh-CN">完这两本Q?/span>基本能应付大部分C Q?/span>C++?/span>Java?/span>W试题?/span>
<< 深入理解计算机系l?/span> >>Q?span lang="zh-CN">从程序员的角度看计算机系l,求职必备Q考研也必?/span>?/span>
看完以上三本Q?/span>一般的IT公司基本都能搞定了?/span>
<<C 语言E序设计 >>Q?/span> 薄归薄,可是人家是学?/span>C语言的圣l,你也没办法。同样很薄很l典的书q有 << effective C++ >>Q?/span><<~程珠玑 >>Q?/span><< effective java >>?/span>
<< UNIX 环境高~程 >>Q?/span> linuxpȝE序设计的杀手?/span>
<< 法D >>Q?/span> q么d的书Q还用介l么Q?/span>q本书你C本吧Q不买对不v你学了多q计机?span lang="zh-CN">惛_好的公司Q算法一定不能落下,W试׃考你法Q不会的话抓狂也没用?/span>
除了两本面试宝典外,其他的书都是扑֮工作后,都能l箋留在你书架上的书Q当枕头Q当砖头Q垫W记本,都应该留着?/span>
q了W试养Iq有面试兟뀂这q头Q面试可是过 N养I?/span>N的。一定要自信Q没自信已l歇菜一半了。不要小看那些面试官Q他们面了那么多人,聊几句就基本能摸清你的底。千万要自信Q唬住那些面试官。我q公司后Q当旉我的ȝҎ_我当时招你就ƣ赏你的自信?/span>
把面试当聊天Q心态要好。不要我Q大不了我l回去考研呗!我当时就q么想的。没了压力,自然放开了?/span>
求职的道路也许很漫长Q也怹和我一L屎运好,只面了一家就能拿到心仪的 offer。只是,在这个过E中Q我们必M持良好的心态,M有一家好公司Q给我们?/span>offer。微W,L更容易让面试官记住你的名字?/span>
]]>velocity的类型比?/title> http://www.aygfsteel.com/littleq/archive/2008/09/27/231423.htmllittleQ littleQ Sat, 27 Sep 2008 02:08:00 GMT http://www.aygfsteel.com/littleq/archive/2008/09/27/231423.html http://www.aygfsteel.com/littleq/comments/231423.html http://www.aygfsteel.com/littleq/archive/2008/09/27/231423.html#Feedback 7 http://www.aygfsteel.com/littleq/comments/commentRss/231423.html http://www.aygfsteel.com/littleq/services/trackbacks/231423.html Velocity的比较本来很单,只是它在比较基本cd的时候,不仅比较值是否相{,q会比较cd是否相同?br />
拿个很简单的例子来说一下:
VelocityContext context = new VelocityContext();
long aLong = 1234L ;
context.put( " aLong " , aLong);
在velocity面里,q行一个比较:
#if($!aLong==1234)
cd比较成功
#else
比较p|
#end
面肯定会打印出"比较p|".因ؓ在velocity中获取的变量aLong是longcdQ而数?234是默认ؓintcd的。虽然值相{,可是cd不同?br />
在velocity里,好像没有Ҏq行基础cd之间的强制{换,如果你知道的话,请回帖告诉我们?br />
那现在问题摆在这里,我们想看?cd比较成功"Q应该怎么做呢Q?br />
修改java代码Q把变量aLong强制转换成intcd:
context.put( " aLong " ,( int )aLong).
不过我不是很赞成q种做法Q从long强制转换成intcdQ很Ҏ造成_ֺ丢失?br />
q有一U比较直接的ҎQ不修改java代码Q直接修改vm文gQ?/span>
#if("$!aLong"=="1234")
cd比较成功
#else
比较p|
#end
把两辚w变成了StringcdQ就不会出现cd比较p|的情况了?br />
认识比较肤浅表面Q还希望大家多指点一下?/span>
]]> 分n两个单的面开发技?/title> http://www.aygfsteel.com/littleq/archive/2008/09/25/231106.htmllittleQ littleQ Thu, 25 Sep 2008 06:48:00 GMT http://www.aygfsteel.com/littleq/archive/2008/09/25/231106.html http://www.aygfsteel.com/littleq/comments/231106.html http://www.aygfsteel.com/littleq/archive/2008/09/25/231106.html#Feedback 9 http://www.aygfsteel.com/littleq/comments/commentRss/231106.html http://www.aygfsteel.com/littleq/services/trackbacks/231106.html 1.td的折断换行显C?br />
比如现在?lt;td style="width:30px">abcdabcdabcdabcdabcd</td>Q由于是英文Q是不会自动折断换行的。当然你强制的写?lt;td style="width:30px">abcdabc</br>dabcdabcdabcd</td>的话……
q时候,你就需要word-wrap:break-word;word-break:break-all;
< td style ="width:30px;word-wrap:break-word;word-break:break-all;" > abcdabcdabcdabcdabcd </ td >
搞定?br />
2.table的row颜色交替昄
q个有很多方法,用js控制Qcss控制Q很多很多方法,google一下一大把。我常用的就是一句话Q?br />
TABLE.result TR { } { background-color : expression((this.sectionRowIndex%2==0)?"#B1D7E3":"#E3F2FE") ; height : 23px ; }
指定table的class卛_?/span>
]]> <_N正则表辑ּ> http://www.aygfsteel.com/littleq/archive/2008/08/24/223948.htmllittleQ littleQ Sun, 24 Aug 2008 00:42:00 GMT http://www.aygfsteel.com/littleq/archive/2008/08/24/223948.html http://www.aygfsteel.com/littleq/comments/223948.html http://www.aygfsteel.com/littleq/archive/2008/08/24/223948.html#Feedback 0 http://www.aygfsteel.com/littleq/comments/commentRss/223948.html http://www.aygfsteel.com/littleq/services/trackbacks/223948.html
在blogjava首页看到推荐q本书,正好我也在看q本书。那么就E微说两句?br />
本书是讲解正则表辑ּ的经怹作。本书主要讲解了正则表达式的Ҏ和派、匹配原理、优化原则、实用诀H以及调校措施,q详l介l了正则表达式在Perl、Java?NET、PHP中的用法?br />
不管是想入门Q还是想找一本手册放在n边,我觉得这本书Q都是上上之选?br />
点击购买q本?/a>?/span>
]]> 比较两个数组是否相同 http://www.aygfsteel.com/littleq/archive/2008/08/23/223913.htmllittleQ littleQ Sat, 23 Aug 2008 15:30:00 GMT http://www.aygfsteel.com/littleq/archive/2008/08/23/223913.html http://www.aygfsteel.com/littleq/comments/223913.html http://www.aygfsteel.com/littleq/archive/2008/08/23/223913.html#Feedback 0 http://www.aygfsteel.com/littleq/comments/commentRss/223913.html http://www.aygfsteel.com/littleq/services/trackbacks/223913.html 有数l?/span>
String[] arraysA = new String[] { " test1 " , " test2 " } ;
String[] arraysB = new String[] { " test1 " , " test2 " } ;
如果直接使用 == 来判断两者是否相同:
if (arraysA == arraysB)
System.out.println( " equals " );
else
System.out.println(" not equals " );
l果会是Qnot equals
而用equalsQ?/span>
if (arraysA.equals(arraysB))
System.out.println( " equals " );
else
System.out.println(" not equals " );
l果也是Qnot equals
数组的比较,应该是用java.util.Arrays
if (Arrays.equals(arraysA, arraysB))
System.out.println( " equals " );
else
System.out.println(" not equals " );
l果为:equals
Arrays.equals的参数可以是Lcd的数l。具体见Q?/span>http://java.sun.com/j2se/1.5.0/docs/api/java/util/Arrays.html
]]> DWR单指?/title> http://www.aygfsteel.com/littleq/archive/2008/08/23/223909.htmllittleQ littleQ Sat, 23 Aug 2008 15:06:00 GMT http://www.aygfsteel.com/littleq/archive/2008/08/23/223909.html http://www.aygfsteel.com/littleq/comments/223909.html http://www.aygfsteel.com/littleq/archive/2008/08/23/223909.html#Feedback 0 http://www.aygfsteel.com/littleq/comments/commentRss/223909.html http://www.aygfsteel.com/littleq/services/trackbacks/223909.html from: http://littlez.javaeye.com/blog/231133
dwr可以让我们在览器中使用javascript调用服务器端的java代码?br />
dwr主要包括两部分:
q行在客L的js代码发送请求到服务器端Q?br />
服务器端的dwr servlet处理hQƈ结果和数据q回到客L?br />
有一张关于dwr很精的图:
DWR单配|:
1.首先dwr.jar 是必ȝ。下载后攑֜/WEB-INF/lib目录下?br />
2.?WEB-INF/目录下,增加一个dwr.xml文g。格式如下:
<dwr >
< allow >
< create creator ="new" javascript ="JDate" >
< param name ="class" value ="java.util.Date" />
</ create >
< create creator ="spring" javascript ="winnerService" >
< param name ="beanName" value ="dwrWinnerService" />
</ create >
</ allow >
</ dwr >
根节ҎdwrQ我在第一ơ配|这个dwr.xml的时候,忽略掉了Q根l点直接是allowQ然后就一直报错,很脑D的错误。所以在q里也稍微提醒一下?br />
create的creator属性常用的为new和spring。new是每次调用的时候,都会实例化一个新的对象来处理hQspring是从Spring的配|文件中取得bean?br />
以JDateZQjavascript属性是DWR动态ؓ服务器端的Datec?java)生成一个相应的客户端JDatec?Javascript)。JDate可以使用Date的所有publicҎ?br />
3. 配好了dwr.xmlQ接下来配置/WEB-INF/web.xml。我们需要在web.xml中增加如?lt;servlet>?lt;servlet-mapping>:
<servlet >
< servlet-name > dwr-invoker </ servlet-name >
< display-name > DWR Servlet </ display-name >
< servlet-class > uk.ltd.getahead.dwr.DWRServlet </ servlet-class >
< init-param >
< param-name > debug </ param-name >
< param-value > true </ param-value >
</ init-param >
</ servlet >
< servlet-mapping >
< servlet-name > dwr-invoker </ servlet-name >
< url-pattern > /dwr/* </ url-pattern >
</ servlet-mapping >
q个servlet是用来处理dwr发送的h?/p>
4. dwr讉K
q时候,如果你已l在本地启动了你的应?假设是在tomcat?Q可以访问如下URLQ?/p>
http://localhost:8080/[YOUR-APP-NAME]/dwr
你会看到在dwr.xml配置的两个类.点击JDate,可以看到所有可以调用的Ҏ,q且可以点击,在按钮的双看到点击的反?
在这个页面的上方,你还会看到如下代?
<script src ='/[YOUR-APP-NAME]/dwr/interface/JDate.js'></script>
<script src ='/[YOUR-APP-NAME]/dwr/engine.js'></script>
当你的页面需要用JDateӞ必L上面的script代码片段攑ֈ你的面中?br />
<script type ="text/javascript" >
JDate.toString({
callback: function(str) { alert(str); }
});
</ script >
我们可以用JDate?
q里主要是ؓ了介l一下dwr最基本的?那么dwr的一些其他能?比如时处理和错误处?׃在这里说?
]]> JS验证中文长度 http://www.aygfsteel.com/littleq/archive/2008/08/12/221516.htmllittleQ littleQ Tue, 12 Aug 2008 07:52:00 GMT http://www.aygfsteel.com/littleq/archive/2008/08/12/221516.html http://www.aygfsteel.com/littleq/comments/221516.html http://www.aygfsteel.com/littleq/archive/2008/08/12/221516.html#Feedback 3 http://www.aygfsteel.com/littleq/comments/commentRss/221516.html http://www.aygfsteel.com/littleq/services/trackbacks/221516.html 在js里,一个中文字W的length?Q但是提交到数据库中Q就占了两个字节Q验证误差,直接抛异常?br />
如果一个字D在oracle里是varchar2(64)Q如果录?3个汉字,用length的话?3Q但是到oracle里就?6个字节了Q插入操作肯定出错?br />
我们可以定义一个新的函数getBytes()取得字符串的字节敎ͼ在java里,q个函数是标准函数?br />
String.prototype.getBytes = function () {
var cArr = this .match( / [ ^ \x00 - \xff] / ig);
return this .length + (cArr == null ? 0 : cArr.length);
}
function paramCheck(cur) {
if (cur.value.getBytes() > 64 ) {
alert( " 字符过64个字W?/span>" );
return false ;
}
return true ;
}
getBytes用正则表辑ּ来判断字W串中包含汉字的个数Q包含的汉字都放到数lcArr中,q样cArr的长度就是汉字的L。getBytesҎq回length加上汉字敎ͼ是ȝ字节数?br />
只是使用了[^\x00-\xff]Q这个有Ҏ心,有些Ҏ字符也是能匹配到的,比如}{?br />
但是如果使用[^\u4E00-\u9FA5]的话Q却不能匚wC?#8230;…
]]> 做一回广?/title> http://www.aygfsteel.com/littleq/archive/2008/08/11/221280.htmllittleQ littleQ Mon, 11 Aug 2008 06:24:00 GMT http://www.aygfsteel.com/littleq/archive/2008/08/11/221280.html http://www.aygfsteel.com/littleq/comments/221280.html http://www.aygfsteel.com/littleq/archive/2008/08/11/221280.html#Feedback 1 http://www.aygfsteel.com/littleq/comments/commentRss/221280.html http://www.aygfsteel.com/littleq/services/trackbacks/221280.html
在javaeye上看到有人推荐这本《javaq发~程实践》,正好又听我们公司的一个同事说P说这本的不错?br />
作ؓ一名java开发h员,其是j2ee开发,q发的处理是大头?br />
附书评:
SunCU程指导区推荐读物之一Q当然是推荐的英文版Q。书写的循序渐进Q实例丰富。这ơ博文的中文版翻译质量较好,q没有全部看完,但已l开始对几个做java的朋友推荐了 :)
Java currency framework是java 5新加入的Q但感觉了解的h不多Q多Chq是自己写线E池Q队列。这个框架其实已l融入到Java里面Q学会用这个框架能让多U程E序的编写事半功倍。另外对其他语言的多U程~程也会有所启发。现在国内能买到的详l解释这个框架的书不多,q本书算是现阶段的精品了?/span>
]]> Getting Started with Induction-译(1) http://www.aygfsteel.com/littleq/archive/2008/07/30/218846.htmllittleQ littleQ Wed, 30 Jul 2008 14:16:00 GMT http://www.aygfsteel.com/littleq/archive/2008/07/30/218846.html http://www.aygfsteel.com/littleq/comments/218846.html http://www.aygfsteel.com/littleq/archive/2008/07/30/218846.html#Feedback 3 http://www.aygfsteel.com/littleq/comments/commentRss/218846.html http://www.aygfsteel.com/littleq/services/trackbacks/218846.html
Ƣ迎使用InductionQInduction是用java~程语言q行web应用开发的健壮高性能的框架。Induction属于Zh的web框架Q作Z个servlet部v在servlet容器中。Induction宣扬MVC的方法进行web应用开发。Induction的几个关键设计目标是Q?
1.当modlesQviews和controllers发生变化Ӟ消除对web应用E序必须重蝲的需求(我们怿一ơ简单的面hp够了Q?
2.modlesQviewsQcontrollers之间的绑定是声明式的Q这U方式可以在MIDE中都能被解析
3.使得数据跟踪在用L面模板中可用Q尤其是HTML模板Q?
4.文g上传处理应该单到很^凡的地步
5.在HTML表格中,数组QarraysQ和字典cdQdictionary types Q的使用应该可能简?
6.明智的用XMLQ在每个应用E序中,Induction只需要一个XML文gQ?
7.是一U能够适应多种pattern应用的可扩充的架?
8.高性能
9.从JDK1.4?.6都兼容(包括1.4?.6Q?
About this tutorial
q䆾指南的目的是让你更快的用Induction。Induction需要一个servlet容器。在q䆾指南中,我们使用Apache的TomcatQ不q你可以选择使用M服从标准的servlet容器?
Installing
我们假设你已l在c:/dev/Tomcat6安装了Tomcat6。Induction本n不需要Q何的安装步骤Q它的jar包可以很Ҏ地引入到你的web应用E序中?
Writing our first application - hello world
在这份指南中Q我们会写一个简单的"hello world"应用Q在q个应用里我们会列D出Induction的许多重要概c?
Writing a controller
首先我们写一个controller作ؓ我们指南的开始,因ؓcontrollers是web应用E序中一个典型的entry。好Q现在让我们开始写一个controllerQ让它在览器中打印一串字W?/p>
package demoapp.helloworld1_app;
import com.acciente.induction.controller.Controller;
import com.acciente.induction.controller.Response;
import java.io.IOException;
/** */ /**
* A very simple controller that does the customary "Hello World"
*/
public class HelloWorldController implements Controller
{
public void handler( Response oReponse ) throws IOException
{
oReponse.setContentType( " text/plain " );
oReponse.out().println( " Hello World, using a simple println() " );
}
}
在我们运行这个controller之前Q先仔细的看一下。首先我们注意到HelloWorldControllercdCInduction的ControllerQController接口只是一个简单的标记接口Q没有定义Q何方法给它的实现cR当Induction接收C个requesth后,ȀzM个Controller实现Q比如HelloWorldControllerc,Induction首先核实q个cL否是实现Controller接口。因此目前Controller接口的存在的唯一理由是安全(主要考虑到Controller接口的可配置性)。因为Controller只是一个标记性接口,所以handlerҎq不是接口定义的?
接下来,我们可以看到handlerҎ有一个Response参数QResponsecLl承javax.servlet.http.HttpServletResponse接口Qƈ单的对servlet容器的response对象q行了封装。Induction通过注入的方式,参数ResponseglhandlerҎ。一些能够作为handler参数的|也是通过自动注入的方式,只要它们是遵循以下类型:
Type
Description
Request
facade to the servlet request, extends javax.servlet.http.HttpServletRequest
Response
facade to the servlet response, extends javax.servlet.http.HttpServletResponse
Form
provides access to the HTML form (if any) submitted with this request
ControllerResolver.Resolution
provides access to the controller resolution object (very useful for writing generic parameterized controllers)
model_class_name
instance of a user provided model class, the instance is managed to conform to a user specified lifecycle
上面的类名是不完整的QRequest, Response和Formcȝ更多信息Q在package com.acciente.induction.controller中查看?
原文地址Q?a >http://www.inductionframework.org/getting-started-tutorial.html
先翻译一部分放上来,后面的会快贴出?/p>
译的不通畅的地方,误谅~
]]>
վ֩ģ壺
ղ |
|
Դ |
쳤 |
|
̩ |
|
|
|
̩ |
|
|
|
|
Ͽ |
|
|
|
|
ͼ |
Ľ |
̫ |
|
|
|
|
|
ֹ |
|
|
߷ |
ɽ |
̫ |
|
|
ͭ |
|
|
|
ҵ |
|