Enviar búsqueda
Cargar
Beautiful Development ブレイクスルー体験記
•
Descargar como KEY, PDF
•
4 recomendaciones
•
10,251 vistas
K
kentaro watanabe
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 53
Descargar ahora
Recomendados
Javascript & jQuery: A pragmatic introduction
Javascript & jQuery: A pragmatic introduction
Iban Martinez
Cdr stats-vo ip-analytics_solution_mongodb_meetup
Cdr stats-vo ip-analytics_solution_mongodb_meetup
christkv
Daily notes
Daily notes
meghendra168
Basic articles of incorporation template free basic articles of incorporatio...
Basic articles of incorporation template free basic articles of incorporatio...
Lloyd Peace
Inteligencia artificial 4
Inteligencia artificial 4
Nauber Gois
Юрий Буянов «Squeryl — ORM с человеческим лицом»
Юрий Буянов «Squeryl — ORM с человеческим лицом»
e-Legion
pewPew<s>xxd
pewPew<s>xxd
SomeRandoDudewhojust
Dec10 tuesday conversation_idelarcor
Dec10 tuesday conversation_idelarcor
Ignacio del Arco Herrera
Recomendados
Javascript & jQuery: A pragmatic introduction
Javascript & jQuery: A pragmatic introduction
Iban Martinez
Cdr stats-vo ip-analytics_solution_mongodb_meetup
Cdr stats-vo ip-analytics_solution_mongodb_meetup
christkv
Daily notes
Daily notes
meghendra168
Basic articles of incorporation template free basic articles of incorporatio...
Basic articles of incorporation template free basic articles of incorporatio...
Lloyd Peace
Inteligencia artificial 4
Inteligencia artificial 4
Nauber Gois
Юрий Буянов «Squeryl — ORM с человеческим лицом»
Юрий Буянов «Squeryl — ORM с человеческим лицом»
e-Legion
pewPew<s>xxd
pewPew<s>xxd
SomeRandoDudewhojust
Dec10 tuesday conversation_idelarcor
Dec10 tuesday conversation_idelarcor
Ignacio del Arco Herrera
Desarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móviles
Luis Curo Salvatierra
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
Pluribus One
Final tagless and cats mtl
Final tagless and cats mtl
Alexander Zaidel
SQLAlchemy Seminar
SQLAlchemy Seminar
Yury Yurevich
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
Marc D Anderson
JavaScript Objects and OOP Programming with JavaScript
JavaScript Objects and OOP Programming with JavaScript
Laurence Svekis ✔
Google Visualization API
Google Visualization API
Jason Young
Electronic Marketing To Your Fan Base
Electronic Marketing To Your Fan Base
Jeff Risley
Ruby-ying Javascript: Avoiding jQuery Spaghetti
Ruby-ying Javascript: Avoiding jQuery Spaghetti
Forrest Chang
Worth the hype - styled components
Worth the hype - styled components
kathrinholzmann
javascript Model- Render & canvas sample
javascript Model- Render & canvas sample
Hika Maeng
Wells Fargo Outline
Wells Fargo Outline
The Entech Group, Inc.
74 kg greco
74 kg greco
purebader
Europea
Europea
Bressolrebelat
[ HackFest.pl 2012] Testing - what for and how
[ HackFest.pl 2012] Testing - what for and how
Mikstura.IT Foundation | Web & Mobile Community
Xdebug confoo11
Xdebug confoo11
Bachkoutou Toutou
Salesforce Data Models for Pros: Simplifying The Complexities
Salesforce Data Models for Pros: Simplifying The Complexities
Salesforce Developers
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup Cairo
Mohamed Mosaad
[ WrocLoveRb 2012] user perspective testing using ruby
[ WrocLoveRb 2012] user perspective testing using ruby
Mikstura.IT Foundation | Web & Mobile Community
HCE tutorial
HCE tutorial
Chien-Ming Chou
JQuery In Rails
JQuery In Rails
Louie Zhao
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Marcel Offermans
Más contenido relacionado
La actualidad más candente
Desarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móviles
Luis Curo Salvatierra
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
Pluribus One
Final tagless and cats mtl
Final tagless and cats mtl
Alexander Zaidel
SQLAlchemy Seminar
SQLAlchemy Seminar
Yury Yurevich
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
Marc D Anderson
JavaScript Objects and OOP Programming with JavaScript
JavaScript Objects and OOP Programming with JavaScript
Laurence Svekis ✔
Google Visualization API
Google Visualization API
Jason Young
Electronic Marketing To Your Fan Base
Electronic Marketing To Your Fan Base
Jeff Risley
Ruby-ying Javascript: Avoiding jQuery Spaghetti
Ruby-ying Javascript: Avoiding jQuery Spaghetti
Forrest Chang
Worth the hype - styled components
Worth the hype - styled components
kathrinholzmann
javascript Model- Render & canvas sample
javascript Model- Render & canvas sample
Hika Maeng
Wells Fargo Outline
Wells Fargo Outline
The Entech Group, Inc.
74 kg greco
74 kg greco
purebader
Europea
Europea
Bressolrebelat
[ HackFest.pl 2012] Testing - what for and how
[ HackFest.pl 2012] Testing - what for and how
Mikstura.IT Foundation | Web & Mobile Community
Xdebug confoo11
Xdebug confoo11
Bachkoutou Toutou
Salesforce Data Models for Pros: Simplifying The Complexities
Salesforce Data Models for Pros: Simplifying The Complexities
Salesforce Developers
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup Cairo
Mohamed Mosaad
[ WrocLoveRb 2012] user perspective testing using ruby
[ WrocLoveRb 2012] user perspective testing using ruby
Mikstura.IT Foundation | Web & Mobile Community
HCE tutorial
HCE tutorial
Chien-Ming Chou
La actualidad más candente
(20)
Desarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móviles
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
Final tagless and cats mtl
Final tagless and cats mtl
SQLAlchemy Seminar
SQLAlchemy Seminar
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
JavaScript Objects and OOP Programming with JavaScript
JavaScript Objects and OOP Programming with JavaScript
Google Visualization API
Google Visualization API
Electronic Marketing To Your Fan Base
Electronic Marketing To Your Fan Base
Ruby-ying Javascript: Avoiding jQuery Spaghetti
Ruby-ying Javascript: Avoiding jQuery Spaghetti
Worth the hype - styled components
Worth the hype - styled components
javascript Model- Render & canvas sample
javascript Model- Render & canvas sample
Wells Fargo Outline
Wells Fargo Outline
74 kg greco
74 kg greco
Europea
Europea
[ HackFest.pl 2012] Testing - what for and how
[ HackFest.pl 2012] Testing - what for and how
Xdebug confoo11
Xdebug confoo11
Salesforce Data Models for Pros: Simplifying The Complexities
Salesforce Data Models for Pros: Simplifying The Complexities
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup Cairo
[ WrocLoveRb 2012] user perspective testing using ruby
[ WrocLoveRb 2012] user perspective testing using ruby
HCE tutorial
HCE tutorial
Similar a Beautiful Development ブレイクスルー体験記
JQuery In Rails
JQuery In Rails
Louie Zhao
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Marcel Offermans
Virtual Madness @ Etsy
Virtual Madness @ Etsy
Nishan Subedi
Borrador del blog
Borrador del blog
Sena Cedagro
Creating an Uber Clone - Part XXIV.pdf
Creating an Uber Clone - Part XXIV.pdf
ShaiAlmog1
Creating an Uber Clone - Part IV.pdf
Creating an Uber Clone - Part IV.pdf
ShaiAlmog1
Curso Symfony - Clase 2
Curso Symfony - Clase 2
Javier Eguiluz
Svcc 2013-d3
Svcc 2013-d3
Oswald Campesato
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
Oswald Campesato
JavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
JavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
JavaScript Refactoring
JavaScript Refactoring
Krzysztof Szafranek
JavaOne2010 Groovy/Spring Roo
JavaOne2010 Groovy/Spring Roo
Yasuharu Nakano
Version1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docx
Version1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docx
tienboileau
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
Fernando Daciuk
Bacbkone js
Bacbkone js
Артём Курапов
BDD revolution - or how we came back from hell
BDD revolution - or how we came back from hell
Mateusz Zalewski
Immutable Libraries for React
Immutable Libraries for React
stbaechler
Clean Javascript
Clean Javascript
Ryunosuke SATO
(PHPers Wrocław #5) How to write valuable unit test?
(PHPers Wrocław #5) How to write valuable unit test?
RST Software Masters
circ.db.dbcircleserver(1).py#!usrlocalbinpython3im.docx
circ.db.dbcircleserver(1).py#!usrlocalbinpython3im.docx
christinemaritza
Similar a Beautiful Development ブレイクスルー体験記
(20)
JQuery In Rails
JQuery In Rails
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
Virtual Madness @ Etsy
Virtual Madness @ Etsy
Borrador del blog
Borrador del blog
Creating an Uber Clone - Part XXIV.pdf
Creating an Uber Clone - Part XXIV.pdf
Creating an Uber Clone - Part IV.pdf
Creating an Uber Clone - Part IV.pdf
Curso Symfony - Clase 2
Curso Symfony - Clase 2
Svcc 2013-d3
Svcc 2013-d3
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
JavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
JavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
JavaScript Refactoring
JavaScript Refactoring
JavaOne2010 Groovy/Spring Roo
JavaOne2010 Groovy/Spring Roo
Version1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docx
Version1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docx
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
Bacbkone js
Bacbkone js
BDD revolution - or how we came back from hell
BDD revolution - or how we came back from hell
Immutable Libraries for React
Immutable Libraries for React
Clean Javascript
Clean Javascript
(PHPers Wrocław #5) How to write valuable unit test?
(PHPers Wrocław #5) How to write valuable unit test?
circ.db.dbcircleserver(1).py#!usrlocalbinpython3im.docx
circ.db.dbcircleserver(1).py#!usrlocalbinpython3im.docx
Último
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Katpro Technologies
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
Último
(20)
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
Slack Application Development 101 Slides
Slack Application Development 101 Slides
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Beautiful Development ブレイクスルー体験記
1.
PARTⅢ
http://www.flickr.com/photos/penguinbush/2768719983/
2.
(kentaro714) JavaEE
Clojure IT
3.
Agenda • PartⅢ • • • DDD
4.
PartⅢ
5.
Part1 PartⅡ
ParⅢ
6.
7.
8.
1000
9.
20%
… 1000 30% 50%
10.
500×0.2=100 500
000 500 500 500×0.3=150 500×0.5=250
11.
800 300
300 500 200
12.
13.
*+ $%&'()
*+# !"# ,-.(/#) 01.(/#) 2+ *+78 2+34 /*+# 2+56
14.
200
:%&'()* :+, !"# = 1000$ +,# = 200$ 12A0,:0, -+,./ 0,12 = A12 0,34 = 20% +,# = 40$ 12B0,:0, -+,./ 0,12 = B12 0,34 = 30% +,# = 60$ 12C0,:0, -+,./ 0,12 = C12 0,34 = 50% +,# = 100$
15.
16.
17.
… 500
500×0.2-50=50 50 200 700 500×0.3 500×0.5+50 =150 =300
18.
19.
,-./01
23 !"# 23# $%&'($%(, $%), *+) 45&(6#) 78&(6#) 93 23<= 93:; /23# 93*+ 23$% 23#
20.
:%&'()*
:+, !"# = 1000$ +,# = 700$ 12A0,:0, -+,./ 0,12 = A12 0,34 = 20% +,# = 90$ 12B0,:0, -+,56 0,12 = B12 0,34 = 30% +,# = 150$ 12C0,:0, -+,./ 0,12 = C12 0,34 = 50% +,# = 400$
21.
Application Service public class
SyndicateService { private FacilityRepository facilityRepository; private LoanRepository loanRepository; public void drawDownWithAdjustment(long facilityId, BigDecimal amount, Map<String, BigDecimal> adjustment) { Facility facility = facilityRepository.get(facilityId); Loan loan = facility.getLoan(); for (Investment investment : facility.getInvestments()) { if (adjustment.containsKey(investment.getInvestor().getName())) { BigDecimal share = BigDecimal.valueOf(investment.getPercentage()); BigDecimal variance = adjustment.get(investment.getInvestor() .getName()); LoanAdjustment loanAdjustment = new LoanAdjustment( Money.yen(amount.multiply(share).add(variance))); loan.addLoanInvestment(loanAdjustment); } } loanRepository.save(loan); }
22.
…
23.
24.
500×90/700=64.28.. 500
500 300 800 500×210/700 500×400/700 =150 =285.714...
25.
…
26.
Application Service public class
SyndicateService { private FacilityRepository facilityRepository; private LoanRepository loanRepository; public void processPrincipalPayment(long facilityId, BigDecimal amount) { Facility facility = facilityRepository.get(facilityId); Loan loan = facility.getLoan(); for (LoanInvestment investment : loan.getLoanInvestments()) { BigDecimal share = investment.getAmount().divide(loan.getAmount()); Money newAmount = Money.yen(amount.multiply(share)); LoanAdjustment loanAdjustment = new LoanAdjustment(investment .getAmount().minus(newAmount)); loan.addLoanInvestment(loanAdjustment); } loanRepository.save(loan); }
27.
2
…
28.
…
29.
,-./01
23 !"# 23# $%&'($%(, $%), *+) 45&(6#) 78&(6#) 93 23<= 93:; /23# 93*+ 23$% 23#
30.
31.
32.
33.
34.
:1000
100 20% ¥20 50% 100 ¥30 ¥50 30%
35.
¥70
¥50 ¥20 ¥50 ¥150 ¥180 ¥30 ¥300 ¥350 100 500 600
36.
37.
+,-./
+,- * !"#$(%&) 0121 '(#$('(), '(*, %&) +,-3 7+,-./ 45+,-./ 6#(7+,-./) 89:7+,-./;
38.
78
,-./01 78+ )*+ !"#$(!"%, !"&, '() 23#(4+) 56#(4+) '(.9:;< =.9:;< * * .9: .9: >?@? >?@? .9:A .9:A
39.
Application Service public class
SyndicateService { private FacilityRepository facilityRepository; private LoanRepository loanRepository; public void drawDownWithAdjustment(long facilityId, BigDecimal amount, Map<String, BigDecimal> adjustment) { Facility facility = facilityRepository.get(facilityId); Loan loan = facility.getLoan(); AmountPie drawDownSharePie = facility.getPie().prorate(amount); AmountPie adjustSharePie = AmountPie.createFrom(adjustment); loan.setPie(drawDownSharePie.plus(adjustSharePie)); loanRepository.save(loan); } public void processPrincipalPayment(long facilityId, BigDecimal amount) { Facility facility = facilityRepository.get(facilityId); Loan loan = facility.getLoan(); SharePie principalSharePie = loan.getPie().prorate(amount); loan.setPie(loan.getPie().minus(principalSharePie)); loanRepository.save(loan); }
40.
41.
42.
…
43.
#&'()
!"#$% 12 3#&'() *+#,-. /0 *+#,-. :;<=> BCDE 40 *+#,-. 2789 ?@A<=> 5612 AP
44.
Application Service public void
drawDownWithAdjustment(long facilityId, BigDecimal amount, Map<String, BigDecimal> adjustment) { Facility facility = facilityRepository.findById(facilityId); Loan loan = facility.getLoan(); SharePie drawDownSharePie = facility.getSharePie().prorate(amount); SharePie adjustSharePie = AmountPie.createFrom(adjustment); Transaction drawDown = new DrawDown(loan, drawDownSharePie.plus(adjustSharePie)); loan.apply(drawDown); loanRepository.save(loan); } public void processPrincipalPayment(long facilityId, BigDecimal amount) { Facility facility = facilityRepository.get(facilityId); Loan loan = facility.getLoan(); SharePie principalSharePie = loan.getPie().prorate(amount); Transaction principalPayment = new PrincipalPayment(loan, principalSharePie); loan.apply(principalPayment); loanRepository.save(loan); }
45.
public class DrawDown
extends Transaction { public DrawDown(Position position, SharePie sharePie) { super(position, sharePie); } @Override public void execute() { SharePie newSharePie = position.getPie().plus(this.sharePie); position.setPie(newSharePie); } }
46.
…
47.
#&'()
!"#$% * 12 3#&'() *+#,-. /0 *+#,-. :;<=> BCDE 40
48.
49.
http://www.flickr.com/photos/94379417@N00/4808475862/in/photostream/
50.
http://www.flickr.com/photos/dmclear/5418495331/
51.
http://www.flickr.com/photos/spcbrass/5451894896/
52.
DDD
Notas del editor
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Descargar ahora