| @ -0,0 +1,49 @@ | |||
| .. image:: https://img.shields.io/badge/license-LGPL--3-blue.svg | |||
|     :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html | |||
|     :alt: License: LGPL-3 | |||
| 
 | |||
| Warranty Management | |||
| =================== | |||
| Warranty management used to manage warranty of product | |||
| 
 | |||
| Configuration | |||
| ============= | |||
| - Additional configuration not required | |||
| 
 | |||
| License | |||
| ------- | |||
| General Public License, Version 3 (LGPL v3). | |||
| (https://www.gnu.org/licenses/lgpl-3.0-standalone.html) | |||
| 
 | |||
| Company | |||
| ------- | |||
| * `Cybrosys Techno Solutions <https://cybrosys.com/>`__ | |||
| 
 | |||
| Credits | |||
| ------- | |||
| * Developers: | |||
|             (V16) Subina P, | |||
|             (V17) Dhanya | |||
|   Contact: odoo@cybrosys.com | |||
| 
 | |||
| Contacts | |||
| -------- | |||
| * Mail Contact : odoo@cybrosys.com | |||
| * Website : https://cybrosys.com | |||
| 
 | |||
| Bug Tracker | |||
| ----------- | |||
| Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. | |||
| 
 | |||
| Maintainer | |||
| ========== | |||
| .. image:: https://cybrosys.com/images/logo.png | |||
|    :target: https://cybrosys.com | |||
| 
 | |||
| This module is maintained by Cybrosys Technologies. | |||
| 
 | |||
| For support and more information, please visit `Our Website <https://cybrosys.com/>`__ | |||
| 
 | |||
| Further information | |||
| =================== | |||
| HTML Description: `<static/description/index.html>`__ | |||
| @ -0,0 +1,23 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Gayathri V(<https://www.cybrosys.com>) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    This program is distributed in the hope that it will be useful, | |||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from . import controllers | |||
| from . import models | |||
| @ -0,0 +1,57 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Gayathri V(<https://www.cybrosys.com>) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    This program is distributed in the hope that it will be useful, | |||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| { | |||
|     'name': 'Website Warranty Management', | |||
|     'version': '18.0.1.0.0', | |||
|     'category': 'Sale', | |||
|     'summary': 'Warranty management used to manage warranty of product', | |||
|     'description': """The "Warranty Management" module enables businesses to  | |||
|     efficiently track product warranties, including expiration dates and  | |||
|     associated customer details. Seamlessly integrated with sales processes, | |||
|     it facilitates easy warranty claim creation from sales orders and enhances | |||
|     customer experience with website warranty registration.""", | |||
|     'author': 'Cybrosys Techno Solutions', | |||
|     'company': 'Cybrosys Techno Solutions', | |||
|     'maintainer': 'Cybrosys Techno Solutions', | |||
|     'website': "https://www.cybrosys.com", | |||
|     'depends': ['sale_management', 'website'], | |||
|     'data': [ | |||
|         'data/website_menu_data.xml', | |||
|         'security/ir.model.access.csv', | |||
|         'views/product_template_views.xml', | |||
|         'views/sale_order_views.xml', | |||
|         'views/website_registration_templates.xml', | |||
|         'views/warranty_claim_views.xml', | |||
|         'views/portal_templates.xml', | |||
|     ], | |||
|     'assets': { | |||
|         'web.assets_frontend': [ | |||
|             'website_warranty_management/static/src/js/website_registration.js', | |||
|             'website_warranty_management/static/src/css/warranty.css', | |||
|         ], | |||
|     }, | |||
|     'images': ['static/description/banner.jpg'], | |||
|     'license': 'LGPL-3', | |||
|     'installable': True, | |||
|     'application': False, | |||
|     'auto_install': False | |||
| } | |||
| @ -0,0 +1,23 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Gayathri V(<https://www.cybrosys.com>) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    This program is distributed in the hope that it will be useful, | |||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from . import portal | |||
| from . import website_warranty_management | |||
| @ -0,0 +1,54 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Gayathri V(<https://www.cybrosys.com>) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    This program is distributed in the hope that it will be useful, | |||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from odoo import http | |||
| from odoo.addons.portal.controllers.portal import CustomerPortal | |||
| from odoo.http import request | |||
| 
 | |||
| 
 | |||
| class PortalAccount(CustomerPortal): | |||
|     """Inherited class to add portal menu for warranty claims""" | |||
| 
 | |||
|     def _prepare_home_portal_values(self, counters): | |||
|         """ Super the function to add the warranty claim menu""" | |||
|         values = super()._prepare_home_portal_values(counters) | |||
|         user = request.env.user.partner_id.id | |||
|         claim_count = (request.env['warranty.claim']. | |||
|                        search_count([('customer_id', '=', user)])) | |||
|         values['claim_count'] = claim_count | |||
|         return values | |||
| 
 | |||
|     @http.route('/my/claims', type='http', auth="user", website=True) | |||
|     def my_claims(self): | |||
|         """ Define the action to open the warranty claim tree view""" | |||
|         user = request.env.user.partner_id.id | |||
|         claims = (request.env['warranty.claim'].sudo(). | |||
|                   search([('customer_id', '=', user)])) | |||
|         # Extract the required fields and store them in a list of dictionaries | |||
|         claim_data = [{ | |||
|             'customer_id': claim.customer_id.name, | |||
|             'product_id': claim.product_id.name, | |||
|             'sale_order_id': claim.sale_order_id.name, | |||
|             'status': claim.state, | |||
|         } for claim in claims] | |||
|         # Pass the claim_data to the template | |||
|         return http.request.render('website_warranty_management.portal_warranty_claims', | |||
|                                    {'claim_data': claim_data}) | |||
| @ -0,0 +1,48 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Gayathri V(<https://www.cybrosys.com>) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    This program is distributed in the hope that it will be useful, | |||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from odoo import http | |||
| from odoo.http import request | |||
| 
 | |||
| 
 | |||
| class WarrantyClaimController(http.Controller): | |||
|     """ Class for Warranty claim controller""" | |||
| 
 | |||
|     @http.route('/warranty', type='http', auth="public", website=True) | |||
|     def warranty_claim(self): | |||
|         """ Function to pass the warranty claim details to the warranty | |||
|         claim page""" | |||
|         customers = request.env['res.partner'].sudo().search([]) | |||
|         sale_orders = request.env['sale.order'].sudo().search([]) | |||
|         products = request.env['product.template'].sudo().search([]) | |||
|         return request.render('website_warranty_management.warranty_claim_page', | |||
|                               {'sale_orders': sale_orders, | |||
|                                'customers': customers, | |||
|                                'products': products}) | |||
| 
 | |||
|     @http.route('/warranty/claim/submit', type="http", | |||
|         auth="public", | |||
|         methods=["POST"], | |||
|         website=True, | |||
|         csrf=False) | |||
|     def warranty_claim_submit(self,**kwrgs): | |||
|         """Function to render the claim thanks view""" | |||
|         return request.render('website_warranty_management.claim_thanks_view') | |||
| @ -0,0 +1,13 @@ | |||
| <?xml version="1.0" encoding="utf-8" ?> | |||
| <odoo> | |||
|     <!--This XML configuration defines a new menu item for the Odoo website with | |||
|     the name "Warranty".--> | |||
|     <data noupdate="1"> | |||
|         <record id="menu_warranty" model="website.menu"> | |||
|             <field name="name">Warranty</field> | |||
|             <field name="url">/warranty</field> | |||
|             <field name="parent_id" ref="website.main_menu"/> | |||
|             <field name="sequence" type="int">50</field> | |||
|         </record> | |||
|     </data> | |||
| </odoo> | |||
| @ -0,0 +1,6 @@ | |||
| ## Module <warranty_management> | |||
| 
 | |||
| #### 25.10.2024 | |||
| #### Version 18.0.1.0.0 | |||
| #### ADD | |||
| - Initial Commit for Warranty Management | |||
| @ -0,0 +1,24 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Gayathri V(<https://www.cybrosys.com>) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    This program is distributed in the hope that it will be useful, | |||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from . import product_template | |||
| from . import sale_order | |||
| from . import warranty_claim | |||
| @ -0,0 +1,35 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Gayathri V(<https://www.cybrosys.com>) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    This program is distributed in the hope that it will be useful, | |||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from odoo import fields, models | |||
| 
 | |||
| 
 | |||
| class ProductTemplate(models.Model): | |||
|     """Inherited product template to add fields""" | |||
|     _inherit = 'product.template' | |||
| 
 | |||
|     is_warranty_available = fields.Boolean(string="Warranty Available", | |||
|                                            help="Boolean field to check" | |||
|                                                 "the warranty availability") | |||
|     warranty_duration = fields.Integer(string="Warranty Duration (months)", | |||
|                                        help="Warranty duration") | |||
|     warranty_expiry = fields.Date(string="Warranty Expiry Date", | |||
|                                   help="Warranty expiry date") | |||
| @ -0,0 +1,76 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Gayathri V(<https://www.cybrosys.com>) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    This program is distributed in the hope that it will be useful, | |||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from dateutil.relativedelta import relativedelta | |||
| from odoo import fields, models | |||
| 
 | |||
| 
 | |||
| class SaleOrder(models.Model): | |||
|     """Inherited sale order to super functions to add additional | |||
|     functionalities""" | |||
|     _inherit = 'sale.order' | |||
| 
 | |||
|     is_warranty_check = fields.Boolean(string='Warranty Check', | |||
|                                        help='Check this box if the item has' | |||
|                                             ' warranty.') | |||
| 
 | |||
|     def action_confirm(self): | |||
|         """Call the super method to perform the default confirmation | |||
|         behavior""" | |||
|         super(SaleOrder, self).action_confirm() | |||
|         # Loop through the order lines and check warranty for each product | |||
|         for order in self: | |||
|             for line in order.order_line: | |||
|                 product = line.product_id | |||
|                 if product.is_warranty_available: | |||
|                     self.is_warranty_check = True | |||
|                 else: | |||
|                     self.is_warranty_check = False | |||
|         if (self.order_line. | |||
|                 filtered(lambda x: x.product_id.is_warranty_available)): | |||
|             self.is_warranty_check = True | |||
|         else: | |||
|             self.is_warranty_check = False | |||
| 
 | |||
|     def action_open_smart_tab(self): | |||
|         """ To open warranty smart tab""" | |||
|         domain = [ | |||
|             ('id', 'in', | |||
|              self.order_line.mapped('product_id.product_tmpl_id.id')), | |||
|             ('is_warranty_available', '=', True), | |||
|         ] | |||
|         products_with_warranty = self.env['product.template'].search(domain) | |||
|         for product in products_with_warranty: | |||
|             # Calculate the warranty expiry date based on the sale order date | |||
|             warranty_expiry_date = self.date_order + relativedelta( | |||
|                 months=product.warranty_duration) | |||
|             product.write({'warranty_expiry': warranty_expiry_date}) | |||
|         return { | |||
|             'type': 'ir.actions.act_window', | |||
|             'name': 'Warranty Details', | |||
|             'view_mode': 'list,form', | |||
|             'res_model': 'product.template', | |||
|             'views': [(self.env.ref('website_warranty_management.' | |||
|                                     'product_template_view_tree').id, 'list'), | |||
|                       (self.env.ref('website_warranty_management.' | |||
|                                     'product_template_view_form').id, 'form')], | |||
|             'domain': domain | |||
|         } | |||
| @ -0,0 +1,60 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ############################################################################# | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |||
| #    Author: Gayathri V(<https://www.cybrosys.com>) | |||
| # | |||
| #    You can modify it under the terms of the GNU LESSER | |||
| #    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | |||
| # | |||
| #    This program is distributed in the hope that it will be useful, | |||
| #    but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |||
| #    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | |||
| # | |||
| #    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | |||
| #    (LGPL v3) along with this program. | |||
| #    If not, see <http://www.gnu.org/licenses/>. | |||
| # | |||
| ############################################################################# | |||
| from odoo import fields, models | |||
| 
 | |||
| 
 | |||
| class WarrantyClaim(models.Model): | |||
|     """ Warranty claim class to add fields for warranty claim""" | |||
|     _name = 'warranty.claim' | |||
|     _rec_name = "sale_order_id" | |||
|     _description = 'Warranty Claim' | |||
| 
 | |||
|     customer_id = fields.Many2one('res.partner', | |||
|                                   string='Customer Name', | |||
|                                   help="Customer selection", | |||
|                                   required=True) | |||
|     sale_order_id = fields.Many2one('sale.order', | |||
|                                     help="To select the sale order", | |||
|                                     string='Sale Order') | |||
|     product_id = fields.Many2one('product.product', | |||
|                                  string='Product', | |||
|                                  help="To select the product", | |||
|                                  required=True) | |||
|     partner_id = fields.Many2one('res.users', string='User', | |||
|                                  help="To select the partner", | |||
|                                  default=lambda self: self.env.user) | |||
|     state = fields.Selection( | |||
|         [('draft', 'Draft'), ('approved', 'Approved'), | |||
|          ('rejected', 'Rejected')], default='draft', String="Status", | |||
|         help="To select the state") | |||
|     product_expiry_date = fields.Date( | |||
|         string='Product Expiry Date', help="To get the product expiry date", | |||
|         related='product_id.product_tmpl_id.warranty_expiry', | |||
|         store=True, readonly=True) | |||
| 
 | |||
|     def change_status_approved(self): | |||
|         """ Function to change the status of the claim to approved""" | |||
|         self.state = 'approved' | |||
| 
 | |||
|     def change_status_rejected(self): | |||
|         """ Function to change the status of the claim to rejected""" | |||
|         self.state = 'rejected' | |||
| 
 | 
| After Width: | Height: | Size: 2.2 KiB | 
| After Width: | Height: | Size: 28 KiB | 
| After Width: | Height: | Size: 628 KiB | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 210 KiB | 
| After Width: | Height: | Size: 209 KiB | 
| After Width: | Height: | Size: 109 KiB | 
| After Width: | Height: | Size: 495 B | 
| After Width: | Height: | Size: 1.0 KiB | 
| After Width: | Height: | Size: 624 B | 
| After Width: | Height: | Size: 136 KiB | 
| After Width: | Height: | Size: 214 KiB | 
| After Width: | Height: | Size: 36 KiB | 
| After Width: | Height: | Size: 36 KiB | 
| After Width: | Height: | Size: 3.6 KiB | 
| After Width: | Height: | Size: 310 B | 
| After Width: | Height: | Size: 929 B | 
| After Width: | Height: | Size: 1.3 KiB | 
| After Width: | Height: | Size: 3.3 KiB | 
| After Width: | Height: | Size: 1.4 KiB | 
| After Width: | Height: | Size: 17 KiB | 
| After Width: | Height: | Size: 542 B | 
| After Width: | Height: | Size: 576 B | 
| After Width: | Height: | Size: 733 B | 
| After Width: | Height: | Size: 4.3 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 4.0 KiB | 
| After Width: | Height: | Size: 1.7 KiB | 
| After Width: | Height: | Size: 153 KiB | 
| After Width: | Height: | Size: 2.2 KiB | 
| After Width: | Height: | Size: 911 B | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 600 B | 
| After Width: | Height: | Size: 673 B | 
| After Width: | Height: | Size: 2.0 KiB | 
| After Width: | Height: | Size: 462 B | 
| After Width: | Height: | Size: 2.1 KiB | 
| After Width: | Height: | Size: 926 B | 
| After Width: | Height: | Size: 9.0 KiB | 
| After Width: | Height: | Size: 23 KiB | 
| After Width: | Height: | Size: 7.0 KiB | 
| After Width: | Height: | Size: 11 KiB | 
| After Width: | Height: | Size: 878 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 653 B | 
| After Width: | Height: | Size: 800 B | 
| After Width: | Height: | Size: 905 B | 
| After Width: | Height: | Size: 189 KiB | 
| After Width: | Height: | Size: 4.3 KiB | 
| After Width: | Height: | Size: 839 B | 
| After Width: | Height: | Size: 1.7 KiB | 
| After Width: | Height: | Size: 5.9 KiB | 
| After Width: | Height: | Size: 1.6 KiB | 
| After Width: | Height: | Size: 34 KiB | 
| After Width: | Height: | Size: 26 KiB | 
| After Width: | Height: | Size: 3.8 KiB | 
| After Width: | Height: | Size: 23 KiB | 
| After Width: | Height: | Size: 1.9 KiB | 
| After Width: | Height: | Size: 2.3 KiB | 
| After Width: | Height: | Size: 427 B | 
| After Width: | Height: | Size: 627 B | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 988 B | 
| After Width: | Height: | Size: 3.7 KiB | 
| After Width: | Height: | Size: 5.0 KiB | 
| After Width: | Height: | Size: 875 B | 
| After Width: | Height: | Size: 1.2 KiB | 
| After Width: | Height: | Size: 80 KiB | 
| After Width: | Height: | Size: 1.5 KiB | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 1.9 KiB | 
| After Width: | Height: | Size: 1.1 KiB | 
| After Width: | Height: | Size: 2.1 KiB | 
| After Width: | Height: | Size: 4.4 KiB | 
| After Width: | Height: | Size: 3.2 KiB | 
| After Width: | Height: | Size: 589 B | 
| After Width: | Height: | Size: 3.4 KiB | 
| After Width: | Height: | Size: 565 B | 
| After Width: | Height: | Size: 1.7 KiB | 
| After Width: | Height: | Size: 2.3 KiB | 
| After Width: | Height: | Size: 967 B | 
| After Width: | Height: | Size: 26 KiB | 
| After Width: | Height: | Size: 1.6 KiB |