diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountListForTrialBalance.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountListForTrialBalance.xml
index 5bb46c3b9bd0a611801c71a59a3b0835e06749cf..d29ec4a1fe768fb0dd6d78abf89bae5b0345741a 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountListForTrialBalance.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountListForTrialBalance.xml
@@ -73,11 +73,22 @@
 # are split by \'destination_section\' categories and bank accounts are split by \'source_payment\'\n
 #\n
 \n
+from DateTime import DateTime\n
 import math\n
+\n
 LOG = lambda msg : context.getPortalObject().log(\n
         "AccountModule_getAccountListForTrialBalance", msg)\n
 \n
+from_date = kw.get(\'from_date\', DateTime(\'1970/01/01\'))\n
+simulation_state = kw[\'transaction_simulation_state\']\n
+section_category = kw[\'transaction_section_category\']\n
+at_date = kw[\'at_date\']\n
+kw[\'accounting_transaction_line_currency\'] = \'TODO\'\n
+\n
 \n
+getInventory = context.getPortalObject().portal_simulation.getInventory\n
+getInventoryList = context.getPortalObject().portal_simulation.getInventoryList\n
+        \n
 # wether we should or not expand accounts into virtual accounts \n
 # (payable & receivable with other parties / bank with bank account)\n
 expand_accounts = kw.get("expand_accounts", 1)\n
@@ -88,28 +99,20 @@ gap_root = kw["gap_root"]\n
 # extra arguments for getInventory :\n
 extra_kw = {}\n
 if kw.get(\'from_date\', None) is not None:\n
-  extra_kw[\'from_date\'] = kw[\'from_date\']\n
+  extra_from_date = from_date\n
 \n
 # shall we display a summary line for expanded accounts ?\n
 display_summary_account_line = 0\n
 \n
-def gap_sort_func(a, b) :\n
-  a_gap = a.getGapId()\n
-  b_gap = b.getGapId()\n
-  while len(a_gap) < 7 :\n
-    a_gap += \'0\'\n
-  while len(b_gap) < 7 :\n
-    b_gap += \'0\'\n
-  if a_gap < b_gap : return -1\n
-  if a_gap > b_gap : return 1\n
-  return 0\n
-\n
 def formatValues(dict) :\n
   for k, v in dict.items():\n
     if not(same_type(v, "") or same_type(v, u"")) :\n
       if round(v) == 0.00 :\n
         dict[k] = ""\n
       else :\n
+        negative = v < 0\n
+        if k in (\'opening_balance\', \'closing_balance\') and negative :\n
+          v = - v\n
         # FIXME: this part is a copy of Floatfield format_value\n
         value = str(float(v))\n
         value_list = value.split(\'.\')\n
@@ -119,19 +122,61 @@ def formatValues(dict) :\n
         while i != len(integer):\n
           value += \' \' + integer[i:i+3]\n
           i += 3\n
-        dict[k] = \'%s.%s\'%(integer, value_list[1])\n
+        dict[k] = \'%s.%s\'%(value, str(value_list[1])[:2])\n
+        # XXX ohada l10n local hack, we only use integer part !\n
+        #dict[k] = \'%s\'%(value)\n
+        if k in (\'opening_balance\', \'closing_balance\') :\n
+          if negative:\n
+            dict[k] = \'%s CR\'%(value)\n
+          else :\n
+            dict[k] = \'%s   \'%(value)\n
+        dict[k]\n
   return dict \n
 \n
+# organisations for expandBankAccountsForAccount\n
+organisations = context.portal_categories.restrictedTraverse(\n
+                        section_category\n
+                      ).getGroupRelatedValueList(portal_type=\'Organisation\')\n
+\n
+\n
+def getDefaultColumnValues(node_uid = 0, **kw): \n
+  """ returns then opening balance, debit movements sum, credit movements\n
+  sum and closing balance using defaults categories. """\n
+  values = {}\n
+  values[\'opening_balance\']  = getInventory( node_uid = node_uid,\n
+                                             to_date = from_date,\n
+                                             simulation_state = simulation_state,\n
+                                             omit_simulation = 1,\n
+                                            # TODOcurrency = kw[\'accounting_transaction_line_currency\'],\n
+                                             **kw )\n
+  values[\'debit_movement\']  = getInventory( node_uid = node_uid,\n
+                                            from_date = from_date,\n
+                                            at_date = at_date,\n
+                                            simulation_state = simulation_state,\n
+                                            omit_simulation = 1,\n
+                                            omit_output = 1,\n
+                                           # TODOcurrency = kw[\'accounting_transaction_line_currency\'],\n
+                                            **kw )\n
+  values[\'credit_movement\']  = - getInventory( node_uid = node_uid,\n
+                                               from_date = from_date,\n
+                                               at_date = at_date,\n
+                                               simulation_state = simulation_state,\n
+                                               omit_simulation = 1,\n
+                                               omit_input = 1,\n
+                                           #    TODOcurrency = kw[\'accounting_transaction_line_currency\'],\n
+                                               **kw )\n
+  values[\'closing_balance\'] = values[\'opening_balance\'] + \\\n
+                              values[\'debit_movement\'] - \\\n
+                              values[\'credit_movement\']\n
+  return values\n
+\n
 def expandBankAccountsForAccount(account, **kw) :\n
   tmp_accounts = []\n
-  organisations = context.portal_categories.restrictedTraverse(\n
-                        kw[\'transaction_section_category\']\n
-                      ).getGroupRelatedValueList(portal_type=\'Organisation\')\n
   orga_and_banks = []\n
   for orga in organisations :\n
      orga_and_banks += [(orga, o.getObject()) for o in \\\n
-                        orga.searchFolder(portal_type=[\'Bank Account\'])]\n
-  for orga, bank in orga_and_banks :\n
+                        orga.searchFolder(portal_type=[\'Bank Account\', \'Cash Register\'])]\n
+  for orga ,bank in orga_and_banks :\n
     this_tmp_account = {\n
          \'uid\'   : account.getUid(),\n
          \'id\'    : \'%s-%s-%s\' % ( account.getGapId(),\n
@@ -140,22 +185,23 @@ def expandBankAccountsForAccount(account, **kw) :\n
          \'title\' : \'%s (%s / %s)\' % ( account.getTitle(),\n
                                       orga.getTitle(), bank.getTitle()),\n
     }\n
-    this_tmp_account[\'debit\']  = bank.BankAccount_statSourceDebit(\n
-                                            node_uid = [account.getUid()] )\n
-    this_tmp_account[\'credit\'] = bank.BankAccount_statSourceCredit(\n
-                                            node_uid = [account.getUid()] )\n
-\n
-    balance = this_tmp_account[\'debit\'] - this_tmp_account[\'credit\']\n
-    this_tmp_account[\'debit_balance\'] = balance > 0 and balance or 0.00\n
-    this_tmp_account[\'credit_balance\'] = balance < 0 and - balance or 0.00\n
-    if this_tmp_account[\'credit\'] != 0 or this_tmp_account[\'debit\'] != 0 :\n
-      tmp_accounts.append(account.asContext(**formatValues(this_tmp_account)))\n
+    this_tmp_account.update(\n
+              getDefaultColumnValues( node_uid = account.getUid(),\n
+                                      payment_uid = bank.getUid() ) )\n
+    if ( this_tmp_account[\'opening_balance\'] != 0 or\n
+         this_tmp_account[\'credit_movement\'] != 0 or \n
+         this_tmp_account[\'debit_movement\'] != 0 or\n
+         this_tmp_account[\'closing_balance\'] != 0 ) :\n
+      tmp_accounts.append( account.asContext( **formatValues(this_tmp_account) ) )\n
   return tmp_accounts\n
 \n
 def expandThirdPartiesForAccount(account, **kw) :\n
   tmp_accounts = []\n
+  # get all entities that are destination section related to this account.\n
   entities = [o.getObject() for o in \\\n
-        context.Account_zDistinctSectionList(node_uid = account.getUid())]\n
+        context.Account_zDistinctSectionList( node_uid = account.getUid(), \n
+                                              at_date = at_date,\n
+                                              simulation_state = simulation_state)]\n
   for entity in entities :\n
     this_tmp_account = {\n
          \'uid\' : account.getUid(),\n
@@ -164,32 +210,28 @@ def expandThirdPartiesForAccount(account, **kw) :\n
          \'title\' : \'%s (%s)\'%(account.getTitle(),\n
                   entity.getTitle()),\n
     }\n
-    this_tmp_account[\'debit\'] = \\\n
-            entity.Entity_statSourceDebit( node_uid = [account.getUid()] )\n
-    this_tmp_account[\'credit\'] = \\\n
-            entity.Entity_statSourceCredit( node_uid = [account.getUid()] )\n
-\n
-    balance = this_tmp_account[\'debit\'] - this_tmp_account[\'credit\']\n
-    this_tmp_account[\'debit_balance\'] = balance > 0 and balance or 0.00\n
-    this_tmp_account[\'credit_balance\'] = balance < 0 and - balance or 0.00\n
-    if this_tmp_account[\'credit\'] != 0 or this_tmp_account[\'debit\'] != 0 :\n
-      tmp_accounts.append(entity.asContext(**formatValues(this_tmp_account)))\n
+    this_tmp_account.update(\n
+              getDefaultColumnValues( node_uid = account.getUid(),\n
+                                      mirror_section_uid = entity.getUid() ) )\n
+    if ( this_tmp_account[\'opening_balance\'] != 0 or\n
+         this_tmp_account[\'credit_movement\'] != 0 or \n
+         this_tmp_account[\'debit_movement\'] != 0 ) :\n
+      tmp_accounts.append( account.asContext( **formatValues(this_tmp_account) ) )\n
   return tmp_accounts\n
 \n
-\n
-### FIXME: is this working ? I guess no, as multi-currency is not yet tested\n
-try:\n
-  currency = kw[\'accounting_transaction_line_currency\']\n
-  id = currency.split(\'/\')[-1]\n
-except KeyError:\n
-  id = \'\'\n
-if not id:\n
-  id = \'&nbsp;\'\n
-kw[\'select_expression\'] = "\'%s\' AS accounting_transaction_line_currency" % id\n
-\n
-\n
 accounts = [ o.getObject() for o in context.portal_catalog(**kw) ]\n
 accounts = filter(lambda account: account.getGapId() is not None, accounts )\n
+\n
+def gap_sort_func(a, b) :\n
+  """ simple function to sort accounts. """\n
+  a_gap = a.Account_getGapId()\n
+  b_gap = b.Account_getGapId()\n
+  while len(a_gap) < 7 :\n
+    a_gap += \'0\'\n
+  while len(b_gap) < 7 :\n
+    b_gap += \'0\'\n
+  return cmp(a_gap, b_gap)\n
+\n
 accounts.sort(gap_sort_func)\n
 \n
 accounts_to_expand_by_third_parties = context.portal_categories\\\n
@@ -200,117 +242,68 @@ accounts_to_expand_by_third_parties = context.portal_categories\\\n
         # we use strict_membership because we do not want VAT\n
          portal_type=\'Account\', strict_membership=1)\n
 \n
+# use a dict for faster lookup\n
+accounts_to_expand_by_third_parties_dict = {}\n
+for account in accounts_to_expand_by_third_parties :\n
+  accounts_to_expand_by_third_parties_dict[account.getId()] = 1\n
+\n
 accounts_to_expand_by_bank_accounts = context.portal_categories\\\n
       .account_type.asset.bank.getAccountTypeRelatedValueList(\n
-       # we use strict_membership because we do not want cash\n
-       portal_type=\'Account\', strict_membership=1)\n
+       portal_type=\'Account\')\n
+accounts_to_expand_by_bank_accounts_dict = {}\n
+for account in accounts_to_expand_by_bank_accounts :\n
+  accounts_to_expand_by_bank_accounts_dict[account.getId()] = 1\n
 \n
 report_items = []\n
 results = []\n
 for account in accounts :\n
-  if expand_accounts and account in accounts_to_expand_by_third_parties :\n
+  if expand_accounts and account.getId() in accounts_to_expand_by_third_parties_dict :\n
     # get all organisations with this account\n
     # and create a "virtual-Account" for each organisation\n
     virtual_accounts = expandThirdPartiesForAccount(account, **kw)\n
-    # then display the aggregate account\n
-    item = {\n
-       \'title\': account.getTitle(),\n
-       \'debit\': account.Resource_zGetInventory_old(\n
-                  node_uid=account.getUid(),\n
-                  omit_input=1,\n
-                  omit_simulation=1,\n
-                  simulation_state = kw[\'transaction_simulation_state\'],\n
-                  section_category = kw[\'transaction_section_category\'],\n
-                  at_date = kw[\'at_date\'],\n
-                  **extra_kw\n
-                )[0].quantity or 0.00,\n
-       \'credit\': - (account.Resource_zGetInventory_old(\n
-                  node_uid=account.getUid(),\n
-                  omit_output=1,\n
-                  omit_simulation=1,\n
-                  simulation_state = kw[\'transaction_simulation_state\'],\n
-                  section_category = kw[\'transaction_section_category\'],\n
-                  at_date = kw[\'at_date\'],\n
-                  **extra_kw\n
-                )[0].quantity or 0.00 )}\n
-    # provide a clearly different display when it is a summary account \n
-    # (TODO: it should be in itallic ?).\n
-    if len(virtual_accounts) :\n
-      item[\'id\'] = "   %s **TOTAL**" % account.getGapId()\n
-    else :\n
-      item[\'id\'] = account.getGapId()\n
-    balance = item[\'debit\'] - item[\'credit\']\n
-    item[\'debit_balance\'] = balance > 0 and balance or 0.00\n
-    item[\'credit_balance\'] = balance < 0 and - balance or 0.00\n
     report_items += virtual_accounts\n
-    if len(virtual_accounts) and display_summary_account_line :\n
-      report_items.append(account.asContext(**formatValues(item)))\n
+    if display_summary_account_line or not len(virtual_accounts) :\n
+      # then display the aggregate account\n
+      item = { \'title\': account.getTitle(), }\n
+      item.update( getDefaultColumnValues( node_uid = account.getUid() ) )\n
 \n
-  elif expand_accounts and account in accounts_to_expand_by_bank_accounts :\n
-    virtual_accounts = expandBankAccountsForAccount(account, **kw)\n
-    # then display the aggregate account\n
-    item = {\n
-       \'title\': account.getTitle(),\n
-       \'debit\': account.Resource_zGetInventory_old(\n
-                  node_uid = account.getUid(),\n
-                  omit_input = 1,\n
-                  omit_simulation = 1,\n
-                  simulation_state = kw[\'transaction_simulation_state\'],\n
-                  section_category = kw[\'transaction_section_category\'],\n
-                  at_date = kw[\'at_date\'],\n
-                  **extra_kw\n
-                )[0].quantity or 0.00,\n
+      # provide a clearly different display when it is a summary account \n
+      # (TODO: it should be in itallic ?).\n
+      if len(virtual_accounts) :\n
+        item[\'id\'] = "   %s **TOTAL**" % account.getGapId()\n
+      else :\n
+        item[\'id\'] = account.getGapId()\n
+      item[\'closing_balance\'] = item[\'opening_balance\'] + \\\n
+                                item[\'debit_movement\'] - \\\n
+                                item[\'credit_movement\']\n
+\n
+      report_items.append( account.asContext( **formatValues(item) ) )\n
 \n
-       \'credit\': - (account.Resource_zGetInventory_old(\n
-                  node_uid = account.getUid(),\n
-                  omit_output = 1,\n
-                  omit_simulation = 1,\n
-                  simulation_state = kw[\'transaction_simulation_state\'],\n
-                  section_category = kw[\'transaction_section_category\'],\n
-                  at_date = kw[\'at_date\'],\n
-                  **extra_kw\n
-                )[0].quantity or 0.00 )}\n
-    # provide a clearly different display when it is a summary account\n
-    # (TODO: it should be in itallic ?).\n
-    if len(virtual_accounts) :\n
-      item[\'id\'] = "   %s **TOTAL**" % account.getGapId()\n
-    else :\n
-      item[\'id\'] = account.getGapId()\n
-    balance = item[\'debit\'] - item[\'credit\']\n
-    item[\'debit_balance\'] = balance > 0 and balance or 0.00\n
-    item[\'credit_balance\'] = balance < 0 and - balance or 0.00\n
+  elif expand_accounts and account.getId() in accounts_to_expand_by_bank_accounts_dict :\n
+    virtual_accounts = expandBankAccountsForAccount(account, **kw)\n
     report_items += virtual_accounts\n
-    if len(virtual_accounts) and display_summary_account_line :\n
-      report_items.append(account.asContext(**formatValues(item)))\n
-    \n
+    if display_summary_account_line or not len(virtual_accounts)  :\n
+      # then display the aggregate account\n
+      item = { \'title\': account.getTitle(), }\n
+      item.update( getDefaultColumnValues( node_uid = account.getUid() ) )\n
+\n
+      # provide a clearly different display when it is a summary account \n
+      # (TODO: it should be in itallic ?).\n
+      if len(virtual_accounts) :\n
+        item[\'id\'] = "   %s **TOTAL**" % account.getGapId()\n
+      else :\n
+        item[\'id\'] = account.getGapId()\n
+      item[\'closing_balance\'] = item[\'opening_balance\'] + \\\n
+                                item[\'debit_movement\'] - \\\n
+                                item[\'credit_movement\']\n
+\n
+      report_items.append(account.asContext(**formatValues(item)))    \n
   else :\n
-    item = {\n
-       \'id\':    account.getGapId(),\n
-       \'title\': account.getTitle(),\n
-       \'debit\': account.Resource_zGetInventory_old(\n
-                  node_uid = account.getUid(),\n
-                  omit_input = 1,\n
-                  omit_simulation = 1,\n
-                  simulation_state = kw[\'transaction_simulation_state\'],\n
-                  section_category = kw[\'transaction_section_category\'],\n
-                  at_date = kw[\'at_date\'],\n
-                  **extra_kw\n
-                )[0].quantity or 0.00,\n
+    item = { \'id\' : account.getGapId(),\n
+             \'title\': account.getTitle(), }\n
+    item.update( getDefaultColumnValues( node_uid = account.getUid() ) )\n
+    report_items.append( account.asContext( **formatValues(item) ) )\n
 \n
-       \'credit\': - (account.Resource_zGetInventory_old(\n
-                  node_uid = account.getUid(),\n
-                  omit_output = 1,\n
-                  omit_simulation = 1,\n
-                  simulation_state = kw[\'transaction_simulation_state\'],\n
-                  section_category = kw[\'transaction_section_category\'],\n
-                  at_date = kw[\'at_date\'],\n
-                  **extra_kw\n
-                )[0].quantity or 0.00 )}\n
-    balance = item[\'debit\'] - item[\'credit\']\n
-    item[\'debit_balance\'] = balance > 0 and balance or 0.00\n
-    item[\'credit_balance\'] = balance < 0 and - balance or 0.00\n
-    report_items.append(account.asContext(**formatValues(item)))\n
-    \n
 return report_items\n
 # vim: syntax=python\n
 
@@ -319,180 +312,198 @@ return report_items\n
         </item>
         <item>
             <key> <string>_code</string> </key>
-            <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAQAAACQAAABOAAAACwAA
-AHPDCAAAZAAAawAAfQIAZAEAhAAAfQMAdAIAfAEAZAIAgwIAZAMAZAQAgwIAfQUAdAUAfAEAZAUA
-gwIAfQcAaAAAfQgAdAIAfAEAZAIAgwIAZAYAdAgAgwIAdAgAagkAbx0AAXQFAHwBAGQGAIMCAHQJ
-AHwIAIMBAGQGADxuAQABZAcAfQsAZAgAhAAAfQwAZAkAhAAAiQAAhwAAZAoAhgAAfQ4AhwAAZAsA
-hgAAfQ8AeTIAdAUAfAEAZAwAgwIAfRAAdAUAdAIAfBAAZA0AgwIAZA4AgwEAZAQAC4MCAH0RAFdu
-GQAEdBEAagoAbw0AAQEBAWQPAH0RAG4CAAFYfBEADG8KAAFkEAB9EQBuAQABZBEAfBEAFnQJAHwB
-AIMBAGQSADxnAAAEaRIAfRQAdBQAdBUAdAIAdBYAZBMAgwIAfAEAjQEAgwEARF0cAH0YAHwUAHQC
-AHwYAGQUAIMCAIMAAIMBAAFxRQF+FAB9GQB0GQBkFQCEAAB8GQCDAgB9GQB0AgB8GQBkFgCDAgB8
-DACDAQABdAIAdAIAdAIAdAIAdAIAdBYAZBcAgwIAZBgAgwIAZBkAgwIAZBoAgwIAZBsAgwIAZBwA
-ZB0AZB4AZAQAgwACdAIAdAIAdAIAdAIAdAIAdBYAZBcAgwIAZBgAgwIAZB8AgwIAZCAAgwIAZBsA
-gwIAZBwAZB0AZB4AZAQAgwACF30bAHQCAHQCAHQCAHQCAHQCAHQWAGQXAIMCAGQYAIMCAGQZAIMC
-AGQhAIMCAGQbAIMCAGQcAGQdAGQeAGQEAIMAAn0cAGcAAH0dAGcAAH0eAHhZBnQUAHwZAIMBAERd
-SwZ9HwB8BQBvCgABfB8AfBsAagYAby8CAXQVAHwPAHwfAHwBAI0CAH0gAGgAAARkIgB0AgB8HwBk
-IwCDAgCDAAADPARkJAB0AgB0BQB0FQB0AgB8HwBkJQCDAgBkJgB0AgB8HwBkJwCDAgCDAABkKABk
-BABkKQBkBABkKgB0BQB8AQBkKwCDAgBkLAB0BQB8AQBkLQCDAgBkLgB0BQB8AQBkLgCDAgB8CACN
-AQZkBwCDAgBkLwCDAgBwBAABZDAAAzwEZDEAdAIAdAUAdBUAdAIAfB8AZCUAgwIAZCYAdAIAfB8A
-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
+            <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAQAAACwAAAA+AAAACwAA
+AHN7BgAAZAEAawAAbAAAfQIAAWQCAGsBAH0DAGQDAIQAAH0EAHQDAHwBAGQEAIMCAGQFAHwCAGQG
+AIMBAIMCAIkBAHQGAHwBAGQHAIMCAIkDAHQGAHwBAGQIAIMCAH0JAHQGAHwBAGQJAIMCAIkEAGQK
+AHQKAHwBAIMBAGQLADx0AwB0AwB0AwB0CwBkDACDAgCDAABkDQCDAgBkDgCDAgCJAgB0AwB0AwB0
+AwB0CwBkDACDAgCDAABkDQCDAgBkDwCDAgB9DgB0AwB8AQBkBACDAgBkEABkEQCDAgB9DwB0BgB8
+AQBkEgCDAgB9EABoAAB9EQB0AwB8AQBkBACDAgBkBQB0EQCDAgB0EQBqCQBvCgABiAEAfRMAbgEA
+AWQTAH0UAGQUAIQAAIkGAHQDAHQDAHQDAHQLAGQVAIMCAGQWAIMCAHwJAIMBAGQXAIMCAGQYAGQZ
+AIMAAYkAAGQTAIcEAIcBAIcCAIcDAGQaAIYBAIkFAIcAAIcFAIcGAGQbAIYAAH0YAIcEAIcGAIcF
+AIcDAGQcAIYAAH0ZAGcAAARpGQB9GwB0GwB0HAB0AwB0CwBkHQCDAgB8AQCNAQCDAQBEXRwAfR4A
+fBsAdAMAfB4AZB4AgwIAgwAAgwEAAXG8AX4bAH0fAHQfAGQfAIQAAHwfAIMCAH0fAGQgAIQAAH0h
+AHQDAHwfAGQhAIMCAHwhAIMBAAF0AwB0AwB0AwB0AwB0AwB0CwBkFQCDAgBkIgCDAgBkIwCDAgBk
+JACDAgBkJQCDAgBkGABkJgBkJwBkEQCDAAJ0AwB0AwB0AwB0AwB0AwB0CwBkFQCDAgBkIgCDAgBk
+KACDAgBkKQCDAgBkJQCDAgBkGABkJgBkJwBkEQCDAAIXfSIAaAAAfSMAeDAAdBsAfCIAgwEARF0i
+AH0kAGQRAHQKAHwjAIMBAHQDAHwkAGQqAIMCAIMAADxxpAJXdAMAdAMAdAMAdAMAdAMAdAsAZBUA
+gwIAZCIAgwIAZCMAgwIAZCsAgwIAZCUAgwIAZBgAZCYAgwABfSUAaAAAfSYAeDAAdBsAfCUAgwEA
+RF0iAH0kAGQRAHQKAHwmAIMBAHQDAHwkAGQqAIMCAIMAADxxGQNXZwAAfScAZwAAfSgAeCUDdBsA
+fB8AgwEARF0XA30kAHwPAG8WAAF0AwB8JABkKgCDAgCDAAB8IwBqBgBvJwEBdBwAfBkAfCQAfAEA
+jQIAfSkAfCcAfCkAN30nAHwUAHALAAF0KQB8KQCDAQAMb/IAAWgAAARkLAB0AwB8JABkLQCDAgCD
+AAADPH0rAHQDAHwrAGQuAIMCAIgFAGQvAHQDAHwkAGQwAIMCAIMAAIMAAYMBAAF0KQB8KQCDAQBv
+JAABZDEAdAMAfCQAZDIAgwIAgwAAFnQKAHwrAIMBAGQzADxuHQABdAMAfCQAZDIAgwIAgwAAdAoA
+fCsAgwEAZDMAPHQGAHwrAGQ0AIMCAHQGAHwrAGQ1AIMCABd0BgB8KwBkNgCDAgAYdAoAfCsAgwEA
+ZDcAPHQDAHwnAGQ4AIMCAHQcAHQDAHwkAGQ5AIMCAIgGAHwrAIMBAI0BAIMBAAFxbwYBcVgDAXwP
+AG8WAAF0AwB8JABkKgCDAgCDAAB8JgBqBgBvJwEBdBwAfBgAfCQAfAEAjQIAfSkAfCcAfCkAN30n
+AHwUAHALAAF0KQB8KQCDAQAMb/IAAWgAAARkLAB0AwB8JABkLQCDAgCDAAADPH0rAHQDAHwrAGQu
+AIMCAIgFAGQvAHQDAHwkAGQwAIMCAIMAAIMAAYMBAAF0KQB8KQCDAQBvJAABZDEAdAMAfCQAZDIA
+gwIAgwAAFnQKAHwrAIMBAGQzADxuHQABdAMAfCQAZDIAgwIAgwAAdAoAfCsAgwEAZDMAPHQGAHwr
+AGQ0AIMCAHQGAHwrAGQ1AIMCABd0BgB8KwBkNgCDAgAYdAoAfCsAgwEAZDcAPHQDAHwnAGQ4AIMC
+AHQcAHQDAHwkAGQ5AIMCAIgGAHwrAIMBAI0BAIMBAAFxbwYBcVgDAWgAAARkMwB0AwB8JABkMgCD
+AgCDAAADPARkLAB0AwB8JABkLQCDAgCDAAADPH0rAHQDAHwrAGQuAIMCAIgFAGQvAHQDAHwkAGQw
+AIMCAIMAAIMAAYMBAAF0AwB8JwBkOACDAgB0HAB0AwB8JABkOQCDAgCIBgB8KwCDAQCNAQCDAQAB
+cVgDV3wnAFNkAgBTKDoAAABzIwAAACBzaW1wbGUgZnVuY3Rpb24gdG8gc29ydCBhY2NvdW50cy4g
+KAEAAABzCAAAAERhdGVUaW1lTmMBAAAAAwAAAAQAAABDAAAAcyIAAAB0AAB0AAB0AQBkAQCDAgCD
+AABkAgCDAgBkAwB8AACDAgBTKAQAAABOcw8AAABnZXRQb3J0YWxPYmplY3RzAwAAAGxvZ3MrAAAA
+QWNjb3VudE1vZHVsZV9nZXRBY2NvdW50TGlzdEZvclRyaWFsQmFsYW5jZSgDAAAAcwkAAABfZ2V0
+YXR0cl9zBwAAAGNvbnRleHRzAwAAAG1zZygDAAAAcwMAAABtc2dzCQAAAF9nZXRhdHRyX3MHAAAA
+Y29udGV4dCgAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMLAAAAPGxhbWJkYS4xNz4JAAAA
+cwIAAAAbAXMDAAAAZ2V0cwkAAABmcm9tX2RhdGVzCgAAADE5NzAvMDEvMDFzHAAAAHRyYW5zYWN0
+aW9uX3NpbXVsYXRpb25fc3RhdGVzHAAAAHRyYW5zYWN0aW9uX3NlY3Rpb25fY2F0ZWdvcnlzBwAA
+AGF0X2RhdGVzBAAAAFRPRE9zJAAAAGFjY291bnRpbmdfdHJhbnNhY3Rpb25fbGluZV9jdXJyZW5j
+eXMPAAAAZ2V0UG9ydGFsT2JqZWN0cxEAAABwb3J0YWxfc2ltdWxhdGlvbnMMAAAAZ2V0SW52ZW50
+b3J5cxAAAABnZXRJbnZlbnRvcnlMaXN0cw8AAABleHBhbmRfYWNjb3VudHNpAQAAAHMIAAAAZ2Fw
+X3Jvb3RpAAAAAGMBAAAAEQAAABgAAABDAAAAc94BAAB40wF0AAB0AQB8AABkAQCDAgCDAACDAQBE
+XbkBXAIAfQMAfQQAdAUAfAQAZAIAgwIAcA0AAXQFAHwEAGQDAIMCAAxvjAEBdAYAfAQAgwEAZAQA
+agIAbxQAAWQCAHQHAHwAAIMBAHwDADxx0gEBfAQAZAUAagAAfQgAfAMAZAYAZAcAZgIAagYAbwQA
+AXwIAG8LAAF8BAALfQQAbgEAAXQJAHQKAHwEAIMBAIMBAH0LAHQBAHwLAGQIAIMCAGQJAIMBAH0M
+AHQNAHwMAGQFAIMCAH0OAHQPAHwOAIMBAGQKABZ9EAB0DQB8DgBkAAB8EACFAgCDAgB9CwB4QwB8
+EAB0DwB8DgCDAQBqAwBvLwABfAsAZAsAdA0AfA4AfBAAfBAAZAoAF4UCAIMCABc3fQsAfBAAZAoA
+N30QAHH8AAFXZAwAfAsAdA0AdAkAdA0AfAwAZA0AgwIAgwEAZAAAZA4AhQIAgwIAZgIAFnQHAHwA
+AIMBAHwDADx8AwBkBgBkBwBmAgBqBgBvNwABfAgAbxgAAWQPAHwLABZ0BwB8AACDAQB8AwA8ccEB
+AWQQAHwLABZ0BwB8AACDAQB8AwA8bgEAAXQNAHwAAHwDAIMCAAFxGQABcRkAV3wAAFNkAABTKBEA
+AABOcwUAAABpdGVtc3MAAAAAdQAAAABmAzAuMGkAAAAAcw8AAABvcGVuaW5nX2JhbGFuY2VzDwAA
+AGNsb3NpbmdfYmFsYW5jZXMFAAAAc3BsaXRzAQAAAC5pAwAAAHMBAAAAIHMFAAAAJXMuJXNpAQAA
+AGkCAAAAcwUAAAAlcyBDUnMFAAAAJXMgICAoEQAAAHMJAAAAX2dldGl0ZXJfcwkAAABfZ2V0YXR0
+cl9zBAAAAGRpY3RzAQAAAGtzAQAAAHZzCQAAAHNhbWVfdHlwZXMFAAAAcm91bmRzBwAAAF93cml0
+ZV9zCAAAAG5lZ2F0aXZlcwMAAABzdHJzBQAAAGZsb2F0cwUAAAB2YWx1ZXMKAAAAdmFsdWVfbGlz
+dHMJAAAAX2dldGl0ZW1fcwcAAABpbnRlZ2VycwMAAABsZW5zAQAAAGkoEQAAAHMEAAAAZGljdHMJ
+AAAAX2dldGl0ZXJfcwkAAABfZ2V0YXR0cl9zAQAAAGtzAQAAAHZzCQAAAHNhbWVfdHlwZXMFAAAA
+cm91bmRzBwAAAF93cml0ZV9zCAAAAG5lZ2F0aXZlcwMAAABzdHJzBQAAAGZsb2F0cwUAAAB2YWx1
+ZXMKAAAAdmFsdWVfbGlzdHMJAAAAX2dldGl0ZW1fcwcAAABpbnRlZ2VycwMAAABsZW5zAQAAAGko
+AAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzDAAAAGZvcm1hdFZhbHVlcyUAAABzMAAAAAAB
+GQAMASEBEwEUAgwBGgELAhIBFQEPARABFQEDABMBIQEPATgDEwEHARgCGwESAXMRAAAAcG9ydGFs
+X2NhdGVnb3JpZXNzEgAAAHJlc3RyaWN0ZWRUcmF2ZXJzZXMYAAAAZ2V0R3JvdXBSZWxhdGVkVmFs
+dWVMaXN0cwsAAABwb3J0YWxfdHlwZXMMAAAAT3JnYW5pc2F0aW9uYwEAAAAKAAAAEAAAAAsAAABz
+7QAAAGgAAH0CAHQBAIgCAGQBAHwAAGQCAIgBAGQDAIgDAGQEAGQFAHwBAI0BBHQHAHwCAIMBAGQG
+ADx0AQCIAgBkAQB8AABkBwCIAQBkCACIAABkAwCIAwBkBABkBQBkCQBkBQB8AQCNAQZ0BwB8AgCD
+AQBkCgA8dAEAiAIAZAEAfAAAZAcAiAEAZAgAiAAAZAMAiAMAZAQAZAUAZAsAZAUAfAEAjQEGC3QH
+AHwCAIMBAGQMADx0CQB8AgBkBgCDAgB0CQB8AgBkCgCDAgAXdAkAfAIAZAwAgwIAGHQHAHwCAIMB
+AGQNADx8AgBTZA4AUygPAAAAc3oAAAAgcmV0dXJucyB0aGVuIG9wZW5pbmcgYmFsYW5jZSwgZGVi
+aXQgbW92ZW1lbnRzIHN1bSwgY3JlZGl0IG1vdmVtZW50cwogIHN1bSBhbmQgY2xvc2luZyBiYWxh
+bmNlIHVzaW5nIGRlZmF1bHRzIGNhdGVnb3JpZXMuIHMIAAAAbm9kZV91aWRzBwAAAHRvX2RhdGVz
+EAAAAHNpbXVsYXRpb25fc3RhdGVzDwAAAG9taXRfc2ltdWxhdGlvbmkBAAAAcw8AAABvcGVuaW5n
+X2JhbGFuY2VzCQAAAGZyb21fZGF0ZXMHAAAAYXRfZGF0ZXMLAAAAb21pdF9vdXRwdXRzDgAAAGRl
+Yml0X21vdmVtZW50cwoAAABvbWl0X2lucHV0cw8AAABjcmVkaXRfbW92ZW1lbnRzDwAAAGNsb3Np
+bmdfYmFsYW5jZU4oCgAAAHMGAAAAdmFsdWVzcwcAAABfYXBwbHlfcwwAAABnZXRJbnZlbnRvcnlz
+CAAAAG5vZGVfdWlkcwkAAABmcm9tX2RhdGVzEAAAAHNpbXVsYXRpb25fc3RhdGVzAgAAAGt3cwcA
+AABfd3JpdGVfcwcAAABhdF9kYXRlcwkAAABfZ2V0aXRlbV8oCgAAAHMIAAAAbm9kZV91aWRzAgAA
+AGt3cwYAAAB2YWx1ZXNzBwAAAF9hcHBseV9zDAAAAGdldEludmVudG9yeXMJAAAAZnJvbV9kYXRl
+cxAAAABzaW11bGF0aW9uX3N0YXRlcwcAAABfd3JpdGVfcwcAAABhdF9kYXRlcwkAAABfZ2V0aXRl
+bV8oBAAAAHMHAAAAYXRfZGF0ZXMJAAAAZnJvbV9kYXRlcwwAAABnZXRJbnZlbnRvcnlzEAAAAHNp
+bXVsYXRpb25fc3RhdGUoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcxYAAABnZXREZWZhdWx0Q29s
+dW1uVmFsdWVzSAAAAHMmAAAAAAMGAQ8BBgEJAxMBDwEGAQYBDwQTAQ8BBgEGAQ8EFAEPAQ0BFwFj
+AQAAABEAAAAWAAAACwAAAHNHAgAAZwAAfQIAZwAAfQMAeG8AdAIAiAAAgwEARF1hAH0GAHwDAGcA
+AARpBQB9CAB0AgB0BwB8BgBkAQCDAgBkAgBkAwBkBABnAgCDAAGDAQBEXSIAfQoAfAgAfAYAdAcA
+fAoAZAUAgwIAgwAAZgIAgwEAAXFOAH4IADd9AwBxGQBXeL4BdAIAfAMAgwEARF2wAVwCAH0GAH0L
+AGgAAARkBgB0BwB8AABkBwCDAgCDAAADPARkCABkCQB0BwB8AABkCgCDAgCDAAB0BwB0CwB0BwB0
+BwB8BgBkCwCDAgCDAABkDACDAgBkDQCDAQBkAABkDgCFAgCDAgBkDwCDAgCDAAB0BwB0CwB0BwB0
+BwB8CwBkCwCDAgCDAABkDACDAgBkDQCDAQBkAABkDgCFAgCDAgBkDwCDAgCDAABmAwAWAzwEZBAA
+ZBEAdAcAfAAAZAsAgwIAgwAAdAcAfAYAZAsAgwIAgwAAdAcAfAsAZAsAgwIAgwAAZgMAFgM8fQ0A
+dAcAfA0AZBIAgwIAiAEAZBMAdAcAfAAAZAcAgwIAgwAAZBQAdAcAfAsAZAcAgwIAgwAAgwACgwEA
+AXQLAHwNAGQVAIMCAGQWAGoDAHA/AAF0CwB8DQBkFwCDAgBkFgBqAwBwKQABdAsAfA0AZBgAgwIA
+ZBYAagMAcBMAAXQLAHwNAGQZAIMCAGQWAGoDAG8vAAF0BwB8AgBkGgCDAgB0DgB0BwB8AABkGwCD
+AgCIAgB8DQCDAQCNAQCDAQABcYsAAXGLAFd8AgBTZAAAUygcAAAATnMMAAAAc2VhcmNoRm9sZGVy
+cwsAAABwb3J0YWxfdHlwZXMMAAAAQmFuayBBY2NvdW50cw0AAABDYXNoIFJlZ2lzdGVycwkAAABn
+ZXRPYmplY3RzAwAAAHVpZHMGAAAAZ2V0VWlkcwIAAABpZHMIAAAAJXMtJXMtJXNzCAAAAGdldEdh
+cElkcwgAAABnZXRUaXRsZXMGAAAAZGVjb2RlcwQAAAB1dGY4aQgAAABzBQAAAHVwcGVycwUAAAB0
+aXRsZXMMAAAAJXMgKCVzIC8gJXMpcwYAAAB1cGRhdGVzCAAAAG5vZGVfdWlkcwsAAABwYXltZW50
+X3VpZHMPAAAAb3BlbmluZ19iYWxhbmNlaQAAAABzDwAAAGNyZWRpdF9tb3ZlbWVudHMOAAAAZGVi
+aXRfbW92ZW1lbnRzDwAAAGNsb3NpbmdfYmFsYW5jZXMGAAAAYXBwZW5kcwkAAABhc0NvbnRleHQo
+EAAAAHMMAAAAdG1wX2FjY291bnRzcw4AAABvcmdhX2FuZF9iYW5rc3MJAAAAX2dldGl0ZXJfcw0A
+AABvcmdhbmlzYXRpb25zcwQAAABvcmdhcwYAAABhcHBlbmRzCAAAACRhcHBlbmQwcwkAAABfZ2V0
+YXR0cl9zAQAAAG9zBAAAAGJhbmtzBwAAAGFjY291bnRzCQAAAF9nZXRpdGVtX3MQAAAAdGhpc190
+bXBfYWNjb3VudHMWAAAAZ2V0RGVmYXVsdENvbHVtblZhbHVlc3MHAAAAX2FwcGx5X3MMAAAAZm9y
+bWF0VmFsdWVzKBEAAABzBwAAAGFjY291bnRzAgAAAGt3cwwAAAB0bXBfYWNjb3VudHNzDgAAAG9y
+Z2FfYW5kX2JhbmtzcwkAAABfZ2V0aXRlcl9zDQAAAG9yZ2FuaXNhdGlvbnNzBAAAAG9yZ2FzBgAA
+AGFwcGVuZHMIAAAAJGFwcGVuZDBzCQAAAF9nZXRhdHRyX3MBAAAAb3MEAAAAYmFua3MJAAAAX2dl
+dGl0ZW1fcxAAAAB0aGlzX3RtcF9hY2NvdW50cxYAAABnZXREZWZhdWx0Q29sdW1uVmFsdWVzcwcA
+AABfYXBwbHlfcwwAAABmb3JtYXRWYWx1ZXMoAwAAAHMNAAAAb3JnYW5pc2F0aW9uc3MWAAAAZ2V0
+RGVmYXVsdENvbHVtblZhbHVlc3MMAAAAZm9ybWF0VmFsdWVzKAAAAABzDwAAAFNjcmlwdCAoUHl0
+aG9uKXMcAAAAZXhwYW5kQmFua0FjY291bnRzRm9yQWNjb3VudGcAAABzMAAAAAABBgEGAQ0ABgET
+AUwBDQAMAQoBFQEbATkBOgESAScCCQEbARMBGQEWARYBFgEwAWMBAAAAEgAAABoAAAALAAAAc84B
+AABnAAB9AgBnAAAEaQEAfQQAdAMAdAQAdAUAZAEAgwIAZAIAdAQAfAAAZAMAgwIAgwAAZAQAiAAA
+ZAUAiAMAgwADgwEARF0cAH0KAHwEAHQEAHwKAGQGAIMCAIMAAIMBAAFxRAB+BAB9CwB4WgF0AwB8
+CwCDAQBEXUwBfQwAaAAABGQHAHQEAHwAAGQDAIMCAIMAAAM8BGQIAGQJAHQEAHwAAGQKAIMCAIMA
+AHQEAHQMAHQEAHQEAHwMAGQLAIMCAIMAAGQMAIMCAGQNAIMBAGQAAGQOAIUCAIMCAGQPAIMCAIMA
+AGYCABYDPARkEABkEQB0BAB8AABkCwCDAgCDAAB0BAB8DABkCwCDAgCDAABmAgAWAzx9DgB0BAB8
+DgBkEgCDAgCIAgBkAgB0BAB8AABkAwCDAgCDAABkEwB0BAB8DABkAwCDAgCDAACDAAKDAQABdAwA
+fA4AZBQAgwIAZBUAagMAcCkAAXQMAHwOAGQWAIMCAGQVAGoDAHATAAF0DAB8DgBkFwCDAgBkFQBq
+AwBvLwABdAQAfAIAZBgAgwIAdA8AdAQAfAAAZBkAgwIAiAEAfA4AgwEAjQEAgwEAAXF2AAFxdgBX
+fAIAU2QAAFMoGgAAAE5zHAAAAEFjY291bnRfekRpc3RpbmN0U2VjdGlvbkxpc3RzCAAAAG5vZGVf
+dWlkcwYAAABnZXRVaWRzBwAAAGF0X2RhdGVzEAAAAHNpbXVsYXRpb25fc3RhdGVzCQAAAGdldE9i
+amVjdHMDAAAAdWlkcwIAAABpZHMFAAAAJXMtJXNzCAAAAGdldEdhcElkcwgAAABnZXRUaXRsZXMG
+AAAAZGVjb2RlcwQAAAB1dGY4aQwAAABzBQAAAHVwcGVycwUAAAB0aXRsZXMHAAAAJXMgKCVzKXMG
+AAAAdXBkYXRlcxIAAABtaXJyb3Jfc2VjdGlvbl91aWRzDwAAAG9wZW5pbmdfYmFsYW5jZWkAAAAA
+cw8AAABjcmVkaXRfbW92ZW1lbnRzDgAAAGRlYml0X21vdmVtZW50cwYAAABhcHBlbmRzCQAAAGFz
+Q29udGV4dCgRAAAAcwwAAAB0bXBfYWNjb3VudHNzBgAAAGFwcGVuZHMIAAAAJGFwcGVuZDBzCQAA
+AF9nZXRpdGVyX3MJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0cwcAAABhY2NvdW50cwcAAABhdF9k
+YXRlcxAAAABzaW11bGF0aW9uX3N0YXRlcwEAAABvcwgAAABlbnRpdGllc3MGAAAAZW50aXR5cwkA
+AABfZ2V0aXRlbV9zEAAAAHRoaXNfdG1wX2FjY291bnRzFgAAAGdldERlZmF1bHRDb2x1bW5WYWx1
+ZXNzBwAAAF9hcHBseV9zDAAAAGZvcm1hdFZhbHVlcygSAAAAcwcAAABhY2NvdW50cwIAAABrd3MM
+AAAAdG1wX2FjY291bnRzcwYAAABhcHBlbmRzCAAAACRhcHBlbmQwcwkAAABfZ2V0aXRlcl9zCQAA
+AF9nZXRhdHRyX3MHAAAAY29udGV4dHMHAAAAYXRfZGF0ZXMQAAAAc2ltdWxhdGlvbl9zdGF0ZXMB
+AAAAb3MIAAAAZW50aXRpZXNzBgAAAGVudGl0eXMJAAAAX2dldGl0ZW1fcxAAAAB0aGlzX3RtcF9h
+Y2NvdW50cxYAAABnZXREZWZhdWx0Q29sdW1uVmFsdWVzcwcAAABfYXBwbHlfcwwAAABmb3JtYXRW
+YWx1ZXMoBAAAAHMHAAAAYXRfZGF0ZXMMAAAAZm9ybWF0VmFsdWVzcxYAAABnZXREZWZhdWx0Q29s
+dW1uVmFsdWVzcxAAAABzaW11bGF0aW9uX3N0YXRlKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMc
+AAAAZXhwYW5kVGhpcmRQYXJ0aWVzRm9yQWNjb3VudIAAAABzKgAAAAABBgIQAR4BBgEvAQ0ABgEK
+ARUBGwE6ARIBGAIJARsBEwEZARYBFgEwAXMOAAAAcG9ydGFsX2NhdGFsb2dzCQAAAGdldE9iamVj
+dGMBAAAAAwAAAAMAAABDAAAAcxYAAAB0AAB8AABkAQCDAgCDAAB0AgBqCQBTKAIAAABOcwgAAABn
+ZXRHYXBJZCgDAAAAcwkAAABfZ2V0YXR0cl9zBwAAAGFjY291bnRzBAAAAE5vbmUoAwAAAHMHAAAA
+YWNjb3VudHMJAAAAX2dldGF0dHJfcwQAAABOb25lKAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRo
+b24pcwsAAAA8bGFtYmRhLjE4PpkAAABzAAAAAGMCAAAABwAAAAcAAABDAAAAc38AAAB0AAB8AABk
 AQCDAgCDAAB9AwB0AAB8AQBkAQCDAgCDAAB9BAB4IgB0BQB8AwCDAQBkAgBqAABvDgABfAMAZAMA
-N30DAHEnAAFXeCIAdAUAfAQAgwEAZAIAagAAbw4AAXwEAGQDADd9BABxTAABV3wDAHwEAGoAAG8J
-AAFkBAALU24BAAF8AwB8BABqBABvCAABZAQAU24BAAFkBQBTZAAAUygGAAAATnMIAAAAZ2V0R2Fw
-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
-AgBTZAAAUyghAAAATnMRAAAAcG9ydGFsX2NhdGVnb3JpZXNzEgAAAHJlc3RyaWN0ZWRUcmF2ZXJz
-ZXMcAAAAdHJhbnNhY3Rpb25fc2VjdGlvbl9jYXRlZ29yeXMYAAAAZ2V0R3JvdXBSZWxhdGVkVmFs
-dWVMaXN0cwsAAABwb3J0YWxfdHlwZXMMAAAAT3JnYW5pc2F0aW9ucwwAAABzZWFyY2hGb2xkZXJz
-DAAAAEJhbmsgQWNjb3VudHMJAAAAZ2V0T2JqZWN0cwMAAAB1aWRzBgAAAGdldFVpZHMCAAAAaWRz
-CAAAACVzLSVzLSVzcwgAAABnZXRHYXBJZHMIAAAAZ2V0VGl0bGVzBgAAAGRlY29kZXMEAAAAdXRm
-OGkIAAAAcwUAAAB1cHBlcnMFAAAAdGl0bGVzDAAAACVzICglcyAvICVzKXMbAAAAQmFua0FjY291
-bnRfc3RhdFNvdXJjZURlYml0cwgAAABub2RlX3VpZHMFAAAAZGViaXRzHAAAAEJhbmtBY2NvdW50
-X3N0YXRTb3VyY2VDcmVkaXRzBgAAAGNyZWRpdGkAAAAAZgMwLjBzDQAAAGRlYml0X2JhbGFuY2Vz
-DgAAAGNyZWRpdF9iYWxhbmNlcwYAAABhcHBlbmRzCQAAAGFzQ29udGV4dCgTAAAAcwwAAAB0bXBf
-YWNjb3VudHNzCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMJAAAAX2dldGl0ZW1fcwIAAABrd3MN
-AAAAb3JnYW5pc2F0aW9uc3MOAAAAb3JnYV9hbmRfYmFua3NzCQAAAF9nZXRpdGVyX3MEAAAAb3Jn
-YXMGAAAAYXBwZW5kcwgAAAAkYXBwZW5kMHMBAAAAb3MEAAAAYmFua3MHAAAAYWNjb3VudHMQAAAA
-dGhpc190bXBfYWNjb3VudHMHAAAAX3dyaXRlX3MHAAAAYmFsYW5jZXMHAAAAX2FwcGx5X3MMAAAA
-Zm9ybWF0VmFsdWVzKBMAAABzBwAAAGFjY291bnRzAgAAAGt3cwwAAAB0bXBfYWNjb3VudHNzCQAA
-AF9nZXRhdHRyX3MHAAAAY29udGV4dHMJAAAAX2dldGl0ZW1fcw0AAABvcmdhbmlzYXRpb25zcw4A
-AABvcmdhX2FuZF9iYW5rc3MJAAAAX2dldGl0ZXJfcwQAAABvcmdhcwYAAABhcHBlbmRzCAAAACRh
-cHBlbmQwcwEAAABvcwQAAABiYW5rcxAAAAB0aGlzX3RtcF9hY2NvdW50cwcAAABfd3JpdGVfcwcA
-AABiYWxhbmNlcwcAAABfYXBwbHlfcwwAAABmb3JtYXRWYWx1ZXMoAQAAAHMMAAAAZm9ybWF0VmFs
-dWVzKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMcAAAAZXhwYW5kQmFua0FjY291bnRzRm9yQWNj
-b3VudDcAAABzNgAAAAABBgEbAR4CBgENAAYBEwFJAQ0ADAEKARUBGwE5AToBEgEkAg8BIgEPASIC
-HAEkASgBLAEwAWMBAAAAEQAAABwAAAALAAAAczkCAABnAAB9AgBnAAAEaQEAfQQAdAMAdAQAdAUA
-ZAEAgwIAZAIAdAQAfAAAZAMAgwIAgwAAgwABgwEARF0cAH0IAHwEAHQEAHwIAGQEAIMCAIMAAIMB
-AAFxOAB+BAB9CQB40QF0AwB8CQCDAQBEXcMBfQoAaAAABGQFAHQEAHwAAGQDAIMCAIMAAAM8BGQG
-AGQHAHQEAHwAAGQIAIMCAIMAAHQEAHQKAHQEAHQEAHwKAGQJAIMCAIMAAGQKAIMCAGQLAIMBAGQA
-AGQMAIUCAIMCAGQNAIMCAIMAAGYCABYDPARkDgBkDwB0BAB8AABkCQCDAgCDAAB0BAB8CgBkCQCD
-AgCDAABmAgAWAzx9DAB0BAB8CgBkEACDAgBkAgB0BAB8AABkAwCDAgCDAABnAQCDAAF0DAB8DACD
-AQBkEQA8dAQAfAoAZBIAgwIAZAIAdAQAfAAAZAMAgwIAgwAAZwEAgwABdAwAfAwAgwEAZBMAPHQK
-AHwMAGQRAIMCAHQKAHwMAGQTAIMCABh9DgB8DgBkFABqBABvBAABfA4AcAQAAWQVAHQMAHwMAIMB
-AGQWADx8DgBkFABqAABvBQABfA4AC3AEAAFkFQB0DAB8DACDAQBkFwA8dAoAfAwAZBMAgwIAZBQA
-agMAcBMAAXQKAHwMAGQRAIMCAGQUAGoDAG8vAAF0BAB8AgBkGACDAgB0DgB0BAB8CgBkGQCDAgCI
-AAB8DACDAQCNAQCDAQABcWoAAXFqAFd8AgBTZAAAUygaAAAATnMcAAAAQWNjb3VudF96RGlzdGlu
-Y3RTZWN0aW9uTGlzdHMIAAAAbm9kZV91aWRzBgAAAGdldFVpZHMJAAAAZ2V0T2JqZWN0cwMAAAB1
-aWRzAgAAAGlkcwUAAAAlcy0lc3MIAAAAZ2V0R2FwSWRzCAAAAGdldFRpdGxlcwYAAABkZWNvZGVz
-BAAAAHV0ZjhpDAAAAHMFAAAAdXBwZXJzBQAAAHRpdGxlcwcAAAAlcyAoJXMpcxYAAABFbnRpdHlf
-c3RhdFNvdXJjZURlYml0cwUAAABkZWJpdHMXAAAARW50aXR5X3N0YXRTb3VyY2VDcmVkaXRzBgAA
-AGNyZWRpdGkAAAAAZgMwLjBzDQAAAGRlYml0X2JhbGFuY2VzDgAAAGNyZWRpdF9iYWxhbmNlcwYA
-AABhcHBlbmRzCQAAAGFzQ29udGV4dCgQAAAAcwwAAAB0bXBfYWNjb3VudHNzBgAAAGFwcGVuZHMI
-AAAAJGFwcGVuZDBzCQAAAF9nZXRpdGVyX3MJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0cwcAAABh
-Y2NvdW50cwEAAABvcwgAAABlbnRpdGllc3MGAAAAZW50aXR5cwkAAABfZ2V0aXRlbV9zEAAAAHRo
-aXNfdG1wX2FjY291bnRzBwAAAF93cml0ZV9zBwAAAGJhbGFuY2VzBwAAAF9hcHBseV9zDAAAAGZv
-cm1hdFZhbHVlcygRAAAAcwcAAABhY2NvdW50cwIAAABrd3MMAAAAdG1wX2FjY291bnRzcwYAAABh
-cHBlbmRzCAAAACRhcHBlbmQwcwkAAABfZ2V0aXRlcl9zCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4
-dHMBAAAAb3MIAAAAZW50aXRpZXNzBgAAAGVudGl0eXMJAAAAX2dldGl0ZW1fcxAAAAB0aGlzX3Rt
-cF9hY2NvdW50cwcAAABfd3JpdGVfcwcAAABiYWxhbmNlcwcAAABfYXBwbHlfcwwAAABmb3JtYXRW
-YWx1ZXMoAQAAAHMMAAAAZm9ybWF0VmFsdWVzKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMcAAAA
-ZXhwYW5kVGhpcmRQYXJ0aWVzRm9yQWNjb3VudFUAAABzKgAAAAABBgEQAUcBDQAGAQoBFQEbAToB
-EgEVAgMBLgEDAS4CHAEkASgBLAEwAXMkAAAAYWNjb3VudGluZ190cmFuc2FjdGlvbl9saW5lX2N1
-cnJlbmN5cwUAAABzcGxpdHMBAAAAL3MAAAAAcwYAAAAmbmJzcDtzLAAAACclcycgQVMgYWNjb3Vu
-dGluZ190cmFuc2FjdGlvbl9saW5lX2N1cnJlbmN5cxEAAABzZWxlY3RfZXhwcmVzc2lvbnMOAAAA
-cG9ydGFsX2NhdGFsb2dzCQAAAGdldE9iamVjdGMBAAAAAwAAAAMAAABDAAAAcxYAAAB0AAB8AABk
-AQCDAgCDAAB0AgBqCQBTKAIAAABOcwgAAABnZXRHYXBJZCgDAAAAcwkAAABfZ2V0YXR0cl9zBwAA
-AGFjY291bnRzBAAAAE5vbmUoAwAAAHMHAAAAYWNjb3VudHMJAAAAX2dldGF0dHJfcwQAAABOb25l
-KAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcwsAAAA8bGFtYmRhLjg5PnoAAABzAAAAAHME
-AAAAc29ydHMRAAAAcG9ydGFsX2NhdGVnb3JpZXNzDAAAAGFjY291bnRfdHlwZXMFAAAAYXNzZXRz
-CgAAAHJlY2VpdmFibGVzHgAAAGdldEFjY291bnRUeXBlUmVsYXRlZFZhbHVlTGlzdHMLAAAAcG9y
-dGFsX3R5cGVzBwAAAEFjY291bnRzEQAAAHN0cmljdF9tZW1iZXJzaGlwcwkAAABsaWFiaWxpdHlz
-BwAAAHBheWFibGVzBAAAAGJhbmtzBQAAAHRpdGxlcwgAAABnZXRUaXRsZXMFAAAAZGViaXRzGgAA
-AFJlc291cmNlX3pHZXRJbnZlbnRvcnlfb2xkcwgAAABub2RlX3VpZHMGAAAAZ2V0VWlkcwoAAABv
-bWl0X2lucHV0cw8AAABvbWl0X3NpbXVsYXRpb25zEAAAAHNpbXVsYXRpb25fc3RhdGVzHAAAAHRy
-YW5zYWN0aW9uX3NpbXVsYXRpb25fc3RhdGVzEAAAAHNlY3Rpb25fY2F0ZWdvcnlzHAAAAHRyYW5z
-YWN0aW9uX3NlY3Rpb25fY2F0ZWdvcnlzBwAAAGF0X2RhdGVzCAAAAHF1YW50aXR5ZgMwLjBzBgAA
-AGNyZWRpdHMLAAAAb21pdF9vdXRwdXRzDwAAACAgICVzICoqVE9UQUwqKnMIAAAAZ2V0R2FwSWRz
-AgAAAGlkcw0AAABkZWJpdF9iYWxhbmNlcw4AAABjcmVkaXRfYmFsYW5jZXMGAAAAYXBwZW5kcwkA
-AABhc0NvbnRleHQoIwAAAHMEAAAAbWF0aHMDAAAATE9HcwkAAABfZ2V0YXR0cl9zAgAAAGt3cw8A
-AABleHBhbmRfYWNjb3VudHNzCQAAAF9nZXRpdGVtX3MIAAAAZ2FwX3Jvb3RzCAAAAGV4dHJhX2t3
-cwQAAABOb25lcwcAAABfd3JpdGVfcxwAAABkaXNwbGF5X3N1bW1hcnlfYWNjb3VudF9saW5lcw0A
-AABnYXBfc29ydF9mdW5jcwwAAABmb3JtYXRWYWx1ZXNzHAAAAGV4cGFuZEJhbmtBY2NvdW50c0Zv
-ckFjY291bnRzHAAAAGV4cGFuZFRoaXJkUGFydGllc0ZvckFjY291bnRzCAAAAGN1cnJlbmN5cwIA
-AABpZHMIAAAAS2V5RXJyb3JzBgAAAGFwcGVuZHMIAAAAJGFwcGVuZDBzCQAAAF9nZXRpdGVyX3MH
-AAAAX2FwcGx5X3MHAAAAY29udGV4dHMBAAAAb3MIAAAAYWNjb3VudHNzBgAAAGZpbHRlcnMjAAAA
-YWNjb3VudHNfdG9fZXhwYW5kX2J5X3RoaXJkX3BhcnRpZXNzIwAAAGFjY291bnRzX3RvX2V4cGFu
-ZF9ieV9iYW5rX2FjY291bnRzcwwAAAByZXBvcnRfaXRlbXNzBwAAAHJlc3VsdHNzBwAAAGFjY291
-bnRzEAAAAHZpcnR1YWxfYWNjb3VudHNzBAAAAGl0ZW1zAwAAAGxlbnMHAAAAYmFsYW5jZSgkAAAA
-cwkAAABzZWxlY3Rpb25zAgAAAGt3cwQAAABtYXRocwMAAABMT0dzCQAAAF9nZXRhdHRyX3MPAAAA
-ZXhwYW5kX2FjY291bnRzcwkAAABfZ2V0aXRlbV9zCAAAAGdhcF9yb290cwgAAABleHRyYV9rd3ME
-AAAATm9uZXMHAAAAX3dyaXRlX3McAAAAZGlzcGxheV9zdW1tYXJ5X2FjY291bnRfbGluZXMNAAAA
-Z2FwX3NvcnRfZnVuY3MMAAAAZm9ybWF0VmFsdWVzcxwAAABleHBhbmRCYW5rQWNjb3VudHNGb3JB
-Y2NvdW50cxwAAABleHBhbmRUaGlyZFBhcnRpZXNGb3JBY2NvdW50cwgAAABjdXJyZW5jeXMCAAAA
-aWRzCAAAAEtleUVycm9ycwYAAABhcHBlbmRzCAAAACRhcHBlbmQwcwkAAABfZ2V0aXRlcl9zBwAA
-AF9hcHBseV9zBwAAAGNvbnRleHRzAQAAAG9zCAAAAGFjY291bnRzcwYAAABmaWx0ZXJzIwAAAGFj
-Y291bnRzX3RvX2V4cGFuZF9ieV90aGlyZF9wYXJ0aWVzcyMAAABhY2NvdW50c190b19leHBhbmRf
-YnlfYmFua19hY2NvdW50c3MMAAAAcmVwb3J0X2l0ZW1zcwcAAAByZXN1bHRzcwcAAABhY2NvdW50
-cxAAAAB2aXJ0dWFsX2FjY291bnRzcwQAAABpdGVtcwMAAABsZW5zBwAAAGJhbGFuY2UoAAAAACgB
-AAAAcwwAAABmb3JtYXRWYWx1ZXNzDwAAAFNjcmlwdCAoUHl0aG9uKXMrAAAAQWNjb3VudE1vZHVs
-ZV9nZXRBY2NvdW50TGlzdEZvclRyaWFsQmFsYW5jZQEAAABzygAAAAAFCQEJBhgDDwMGAR8BHQMG
-AgkLCRIMHgwaAwEPASMBDgELAQgBCgEUAyYAJQEVARACTgM0BUIFBgEGAQ0ABgEUAxICCgEeAQ8B
-HgMPAQ8BCQErAg8BHgMPAQ8BCQEfBA0BJAIcARwBJAElAQoBFwEwAhQBEgIKAR4BDwEeAw8BDwEJ
-ASsDDwEeAw8BDwEJAR8EDQEkAhwBHAEkASUBCgEXATADCgEVAR4BDwEeAw8BDwEJASsDDwEeAw8B
-DwEJAR8CHAEkASgBLAIoAQAAAHMrAAAAQWNjb3VudE1vZHVsZV9nZXRBY2NvdW50TGlzdEZvclRy
-aWFsQmFsYW5jZSgBAAAAcysAAABBY2NvdW50TW9kdWxlX2dldEFjY291bnRMaXN0Rm9yVHJpYWxC
-YWxhbmNlKAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcwgAAAA8bW9kdWxlPgEAAABzAAAA
-AA==</string> </value>
+N30DAHEnAAFXeCIAdAUAfAQAgwEAZAIAagAAbw4AAXwEAGQDADd9BABxTAABV3QGAHwDAHwEAIMC
+AFNkBABTKAUAAABzIwAAACBzaW1wbGUgZnVuY3Rpb24gdG8gc29ydCBhY2NvdW50cy4gcxAAAABB
+Y2NvdW50X2dldEdhcElkaQcAAABzAQAAADBOKAcAAABzCQAAAF9nZXRhdHRyX3MBAAAAYXMFAAAA
+YV9nYXBzAQAAAGJzBQAAAGJfZ2FwcwMAAABsZW5zAwAAAGNtcCgHAAAAcwEAAABhcwEAAABicwkA
+AABfZ2V0YXR0cl9zBQAAAGFfZ2FwcwUAAABiX2dhcHMDAAAAbGVucwMAAABjbXAoAAAAACgAAAAA
+cw8AAABTY3JpcHQgKFB5dGhvbilzDQAAAGdhcF9zb3J0X2Z1bmObAAAAcxIAAAAAAhIBEgEDABMB
+DwEDABMBDwFzBAAAAHNvcnRzDAAAAGFjY291bnRfdHlwZXMFAAAAYXNzZXRzCgAAAHJlY2VpdmFi
+bGVzHgAAAGdldEFjY291bnRUeXBlUmVsYXRlZFZhbHVlTGlzdHMHAAAAQWNjb3VudHMRAAAAc3Ry
+aWN0X21lbWJlcnNoaXBzCQAAAGxpYWJpbGl0eXMHAAAAcGF5YWJsZXMFAAAAZ2V0SWRzBAAAAGJh
+bmtzBQAAAHRpdGxlcwgAAABnZXRUaXRsZXMGAAAAdXBkYXRlcwgAAABub2RlX3VpZHMGAAAAZ2V0
+VWlkcw8AAAAgICAlcyAqKlRPVEFMKipzCAAAAGdldEdhcElkcwIAAABpZHMPAAAAb3BlbmluZ19i
+YWxhbmNlcw4AAABkZWJpdF9tb3ZlbWVudHMPAAAAY3JlZGl0X21vdmVtZW50cw8AAABjbG9zaW5n
+X2JhbGFuY2VzBgAAAGFwcGVuZHMJAAAAYXNDb250ZXh0KCsAAABzCAAAAERhdGVUaW1lcwQAAABt
+YXRocwMAAABMT0dzCQAAAF9nZXRhdHRyX3MCAAAAa3dzCQAAAGZyb21fZGF0ZXMJAAAAX2dldGl0
+ZW1fcxAAAABzaW11bGF0aW9uX3N0YXRlcxAAAABzZWN0aW9uX2NhdGVnb3J5cwcAAABhdF9kYXRl
+cwcAAABfd3JpdGVfcwcAAABjb250ZXh0cwwAAABnZXRJbnZlbnRvcnlzEAAAAGdldEludmVudG9y
+eUxpc3RzDwAAAGV4cGFuZF9hY2NvdW50c3MIAAAAZ2FwX3Jvb3RzCAAAAGV4dHJhX2t3cwQAAABO
+b25lcw8AAABleHRyYV9mcm9tX2RhdGVzHAAAAGRpc3BsYXlfc3VtbWFyeV9hY2NvdW50X2xpbmVz
+DAAAAGZvcm1hdFZhbHVlc3MNAAAAb3JnYW5pc2F0aW9uc3MWAAAAZ2V0RGVmYXVsdENvbHVtblZh
+bHVlc3McAAAAZXhwYW5kQmFua0FjY291bnRzRm9yQWNjb3VudHMcAAAAZXhwYW5kVGhpcmRQYXJ0
+aWVzRm9yQWNjb3VudHMGAAAAYXBwZW5kcwgAAAAkYXBwZW5kMHMJAAAAX2dldGl0ZXJfcwcAAABf
+YXBwbHlfcwEAAABvcwgAAABhY2NvdW50c3MGAAAAZmlsdGVycw0AAABnYXBfc29ydF9mdW5jcyMA
+AABhY2NvdW50c190b19leHBhbmRfYnlfdGhpcmRfcGFydGllc3MoAAAAYWNjb3VudHNfdG9fZXhw
+YW5kX2J5X3RoaXJkX3BhcnRpZXNfZGljdHMHAAAAYWNjb3VudHMjAAAAYWNjb3VudHNfdG9fZXhw
+YW5kX2J5X2JhbmtfYWNjb3VudHNzKAAAAGFjY291bnRzX3RvX2V4cGFuZF9ieV9iYW5rX2FjY291
+bnRzX2RpY3RzDAAAAHJlcG9ydF9pdGVtc3MHAAAAcmVzdWx0c3MQAAAAdmlydHVhbF9hY2NvdW50
+c3MDAAAAbGVucwQAAABpdGVtKCwAAABzCQAAAHNlbGVjdGlvbnMCAAAAa3dzCAAAAERhdGVUaW1l
+cwQAAABtYXRocwMAAABMT0dzCQAAAF9nZXRhdHRyX3MJAAAAZnJvbV9kYXRlcwkAAABfZ2V0aXRl
+bV9zEAAAAHNpbXVsYXRpb25fc3RhdGVzEAAAAHNlY3Rpb25fY2F0ZWdvcnlzBwAAAGF0X2RhdGVz
+BwAAAF93cml0ZV9zBwAAAGNvbnRleHRzDAAAAGdldEludmVudG9yeXMQAAAAZ2V0SW52ZW50b3J5
+TGlzdHMPAAAAZXhwYW5kX2FjY291bnRzcwgAAABnYXBfcm9vdHMIAAAAZXh0cmFfa3dzBAAAAE5v
+bmVzDwAAAGV4dHJhX2Zyb21fZGF0ZXMcAAAAZGlzcGxheV9zdW1tYXJ5X2FjY291bnRfbGluZXMM
+AAAAZm9ybWF0VmFsdWVzcw0AAABvcmdhbmlzYXRpb25zcxYAAABnZXREZWZhdWx0Q29sdW1uVmFs
+dWVzcxwAAABleHBhbmRCYW5rQWNjb3VudHNGb3JBY2NvdW50cxwAAABleHBhbmRUaGlyZFBhcnRp
+ZXNGb3JBY2NvdW50cwYAAABhcHBlbmRzCAAAACRhcHBlbmQwcwkAAABfZ2V0aXRlcl9zBwAAAF9h
+cHBseV9zAQAAAG9zCAAAAGFjY291bnRzcwYAAABmaWx0ZXJzDQAAAGdhcF9zb3J0X2Z1bmNzIwAA
+AGFjY291bnRzX3RvX2V4cGFuZF9ieV90aGlyZF9wYXJ0aWVzcygAAABhY2NvdW50c190b19leHBh
+bmRfYnlfdGhpcmRfcGFydGllc19kaWN0cwcAAABhY2NvdW50cyMAAABhY2NvdW50c190b19leHBh
+bmRfYnlfYmFua19hY2NvdW50c3MoAAAAYWNjb3VudHNfdG9fZXhwYW5kX2J5X2JhbmtfYWNjb3Vu
+dHNfZGljdHMMAAAAcmVwb3J0X2l0ZW1zcwcAAAByZXN1bHRzcxAAAAB2aXJ0dWFsX2FjY291bnRz
+cwMAAABsZW5zBAAAAGl0ZW0oAAAAACgHAAAAcw0AAABvcmdhbmlzYXRpb25zcwkAAABmcm9tX2Rh
+dGVzDAAAAGdldEludmVudG9yeXMQAAAAc2ltdWxhdGlvbl9zdGF0ZXMHAAAAYXRfZGF0ZXMWAAAA
+Z2V0RGVmYXVsdENvbHVtblZhbHVlc3MMAAAAZm9ybWF0VmFsdWVzcw8AAABTY3JpcHQgKFB5dGhv
+bilzKwAAAEFjY291bnRNb2R1bGVfZ2V0QWNjb3VudExpc3RGb3JUcmlhbEJhbGFuY2UBAAAAc5IA
+AAAABQ0BCQIJAx4BDwEPAQ8BEAMkASQEGAMPAwYBHwEKAwYCCR4YARgEGB8SGRUYJgAlARICDAoQ
+Ak4DNAYGAQ0ABgEgAjwDBgENAAYBIAIGAQYBDQAGASADEgEKARUCHgElBA0BJAIcAQ8BDQEaAjAC
+IAESAQoBFQIeASUEDQEkAhwBDwENARoCMAIfARQBKAEsAigBAAAAcysAAABBY2NvdW50TW9kdWxl
+X2dldEFjY291bnRMaXN0Rm9yVHJpYWxCYWxhbmNlKAEAAABzKwAAAEFjY291bnRNb2R1bGVfZ2V0
+QWNjb3VudExpc3RGb3JUcmlhbEJhbGFuY2UoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilz
+CAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
         </item>
         <item>
             <key> <string>_dav_writelocks</string> </key>
@@ -502,7 +513,7 @@ AA==</string> </value>
         </item>
         <item>
             <key> <string>_filepath</string> </key>
-            <value> <string>Script (Python):/nexedi/erp5_accounting/AccountModule_getAccountListForTrialBalance</string> </value>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/AccountModule_getAccountListForTrialBalance</string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
@@ -534,40 +545,48 @@ AA==</string> </value>
                           <tuple>
                             <string>selection</string>
                             <string>kw</string>
+                            <string>DateTime</string>
                             <string>math</string>
                             <string>LOG</string>
                             <string>_getattr_</string>
-                            <string>expand_accounts</string>
+                            <string>from_date</string>
                             <string>_getitem_</string>
+                            <string>simulation_state</string>
+                            <string>section_category</string>
+                            <string>at_date</string>
+                            <string>_write_</string>
+                            <string>context</string>
+                            <string>getInventory</string>
+                            <string>getInventoryList</string>
+                            <string>expand_accounts</string>
                             <string>gap_root</string>
                             <string>extra_kw</string>
                             <string>None</string>
-                            <string>_write_</string>
+                            <string>extra_from_date</string>
                             <string>display_summary_account_line</string>
-                            <string>gap_sort_func</string>
                             <string>formatValues</string>
+                            <string>organisations</string>
+                            <string>getDefaultColumnValues</string>
                             <string>expandBankAccountsForAccount</string>
                             <string>expandThirdPartiesForAccount</string>
-                            <string>currency</string>
-                            <string>id</string>
-                            <string>KeyError</string>
                             <string>append</string>
                             <string>$append0</string>
                             <string>_getiter_</string>
                             <string>_apply_</string>
-                            <string>context</string>
                             <string>o</string>
                             <string>accounts</string>
                             <string>filter</string>
+                            <string>gap_sort_func</string>
                             <string>accounts_to_expand_by_third_parties</string>
+                            <string>accounts_to_expand_by_third_parties_dict</string>
+                            <string>account</string>
                             <string>accounts_to_expand_by_bank_accounts</string>
+                            <string>accounts_to_expand_by_bank_accounts_dict</string>
                             <string>report_items</string>
                             <string>results</string>
-                            <string>account</string>
                             <string>virtual_accounts</string>
-                            <string>item</string>
                             <string>len</string>
-                            <string>balance</string>
+                            <string>item</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountStatementReportSectionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountStatementReportSectionList.xml
new file mode 100755
index 0000000000000000000000000000000000000000..25b6c7946492a0d757e54fefb9a8274ab7390bc5
--- /dev/null
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getAccountStatementReportSectionList.xml
@@ -0,0 +1,326 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.PythonScripts.PythonScript</string>
+          <string>PythonScript</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Python_magic</string> </key>
+            <value> <string encoding="base64">O/INCg==</string> </value>
+        </item>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>"""\n
+Get the report sections for account statement.\n
+Account is the combination of :\n
+   - node (the Account in account module)\n
+   - destination_section (the Entity in organisation / person module)\n
+   - source_payment (the Bank account for the organisation)\n
+"""\n
+\n
+from Products.ERP5Form.Report import ReportSection\n
+request = context.REQUEST\n
+\n
+\n
+at_date = request[\'at_date\']\n
+transaction_section_category = request[\'transaction_section_category\']\n
+account = request.get(\'account\', None)\n
+destination_section = request.get(\'destination_section\', None)\n
+source_payment = request.get(\'source_payment\', None)\n
+transaction_simulation_state = request[\'transaction_simulation_state\']\n
+from_date = request.get(\'from_date\', None)\n
+omit_grouping_reference = request.get(\'omit_grouping_reference\', 0)\n
+\n
+params = {\n
+  \'at_date\'                      : at_date,\n
+  \'section_category\'             : transaction_section_category,\n
+  \'transaction_section_category\' : transaction_section_category,\n
+  \'simulation_state\'             : transaction_simulation_state,\n
+  \'accounting_transaction_line_currency\' : None,\n
+  \'omit_grouping_reference\'      : omit_grouping_reference,\n
+  \'from_date_summary\' : 1\n
+}\n
+\n
+preferences = {\n
+  \'preferred_accounting_transaction_at_date\'          : at_date,\n
+  \'preferred_accounting_transaction_simulation_state\' :\n
+                    transaction_simulation_state,\n
+  \'preferred_accounting_transaction_section_category\' :\n
+                    transaction_section_category,\n
+  # XXX put omit_grouping_reference in preferences ?\n
+  \'preferred_accounting_omit_grouping_reference\' : omit_grouping_reference,\n
+}\n
+\n
+if from_date:\n
+  params[\'from_date\'] = from_date\n
+  preferences[\'preferred_accounting_transaction_from_date\'] = from_date\n
+if source_payment :\n
+  params[\'source_payment_uid\'] = context.restrictedTraverse(source_payment).getUid()\n
+if destination_section :\n
+  params[\'destination_section_uid\'] = context.restrictedTraverse(destination_section).getUid()\n
+if account:\n
+  params[\'node_uid\'] = context.restrictedTraverse(account).getUid()\n
+\n
+from Products.ERP5Type.Cache import clearCache\n
+clearCache() # for preferences\n
+\n
+result = []\n
+portal = context.portal_url.getPortalObject()\n
+\n
+account_columns = (\n
+  (\'delivery.start_date\', \'Accounting Operation Date\'),\n
+  (\'title\', \'Title\'),\n
+#  (\'translated_portal_type\', \'Type\'),\n
+#  (\'third_party\', \'Third Party\'),\n
+#  (\'translated_simulation_state_title\', \'State\'),\n
+  (\'source_debit\', \'Debit\'),\n
+  (\'source_credit\', \'Credit\'),\n
+  (\'reference\', \'Accounting Transaction Reference\'),\n
+  (\'net_balance\', \'Balance\'),\n
+)\n
+\n
+return [ReportSection(\n
+              path = context.getPhysicalPath(),\n
+              #title = \'Account Statement Report\',\n
+              form_id = \'Account_viewAccountingTransactionList\',\n
+              selection_name = \'acount_preference_selection\',\n
+              selection_params = params,\n
+              selection_columns = account_columns,\n
+              listbox_display_mode = \'FlatListMode\',\n
+              selection_sort_order = [(\'delivery.stop_date\', \'ascending\')],\n
+              preferences = preferences )]\n
+# vim: syntax=python\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAABcAAAAZAAAAQwAA
+AHPBAgAAZAEAawAAbAEAfQEAAXQCAHQDAGQCAIMCAH0EAHQFAHwEAGQDAIMCAH0GAHQFAHwEAGQE
+AIMCAH0HAHQCAHwEAGQFAIMCAGQGAHQIAIMCAH0JAHQCAHwEAGQFAIMCAGQHAHQIAIMCAH0KAHQC
+AHwEAGQFAIMCAGQIAHQIAIMCAH0LAHQFAHwEAGQJAIMCAH0MAHQCAHwEAGQFAIMCAGQKAHQIAIMC
+AH0NAHQCAHwEAGQFAIMCAGQLAGQMAIMCAH0OAGgAAARkAwB8BgADPARkDQB8BwADPARkBAB8BwAD
+PARkDgB8DAADPARkDwB0CAADPARkCwB8DgADPARkEABkEQADPH0PAGgAAARkEgB8BgADPARkEwB8
+DAADPARkFAB8BwADPARkFQB8DgADPH0QAHwNAG8kAAF8DQB0EQB8DwCDAQBkCgA8fA0AdBEAfBAA
+gwEAZBYAPG4BAAF8CwBvLwABdAIAdAIAdAMAZBcAgwIAfAsAgwEAZBgAgwIAgwAAdBEAfA8AgwEA
+ZBkAPG4BAAF8CgBvLwABdAIAdAIAdAMAZBcAgwIAfAoAgwEAZBgAgwIAgwAAdBEAfA8AgwEAZBoA
+PG4BAAF8CQBvLwABdAIAdAIAdAMAZBcAgwIAfAkAgwEAZBgAgwIAgwAAdBEAfA8AgwEAZBsAPG4B
+AAFkHABrEgBsEwB9EwABfBMAgwAAAWcAAH0UAHQCAHQCAHQDAGQdAIMCAGQeAIMCAIMAAH0VAGQf
+AGQgAGYCAGQhAGQiAGYCAGQjAGQkAGYCAGQlAGQmAGYCAGQnAGQoAGYCAGQpAGQqAGYCAGYGAH0W
+AHwBAGQrAHQCAHQDAGQsAIMCAIMAAGQtAGQuAGQvAGQwAGQxAHwPAGQyAHwWAGQzAGQ0AGQ1AGQ2
+AGQ3AGYCAGcBAGQ4AHwQAIMACGcBAFNkAABTKDkAAABOKAEAAABzDQAAAFJlcG9ydFNlY3Rpb25z
+BwAAAFJFUVVFU1RzBwAAAGF0X2RhdGVzHAAAAHRyYW5zYWN0aW9uX3NlY3Rpb25fY2F0ZWdvcnlz
+AwAAAGdldHMHAAAAYWNjb3VudHMTAAAAZGVzdGluYXRpb25fc2VjdGlvbnMOAAAAc291cmNlX3Bh
+eW1lbnRzHAAAAHRyYW5zYWN0aW9uX3NpbXVsYXRpb25fc3RhdGVzCQAAAGZyb21fZGF0ZXMXAAAA
+b21pdF9ncm91cGluZ19yZWZlcmVuY2VpAAAAAHMQAAAAc2VjdGlvbl9jYXRlZ29yeXMQAAAAc2lt
+dWxhdGlvbl9zdGF0ZXMkAAAAYWNjb3VudGluZ190cmFuc2FjdGlvbl9saW5lX2N1cnJlbmN5cxEA
+AABmcm9tX2RhdGVfc3VtbWFyeWkBAAAAcygAAABwcmVmZXJyZWRfYWNjb3VudGluZ190cmFuc2Fj
+dGlvbl9hdF9kYXRlczEAAABwcmVmZXJyZWRfYWNjb3VudGluZ190cmFuc2FjdGlvbl9zaW11bGF0
+aW9uX3N0YXRlczEAAABwcmVmZXJyZWRfYWNjb3VudGluZ190cmFuc2FjdGlvbl9zZWN0aW9uX2Nh
+dGVnb3J5cywAAABwcmVmZXJyZWRfYWNjb3VudGluZ19vbWl0X2dyb3VwaW5nX3JlZmVyZW5jZXMq
+AAAAcHJlZmVycmVkX2FjY291bnRpbmdfdHJhbnNhY3Rpb25fZnJvbV9kYXRlcxIAAAByZXN0cmlj
+dGVkVHJhdmVyc2VzBgAAAGdldFVpZHMSAAAAc291cmNlX3BheW1lbnRfdWlkcxcAAABkZXN0aW5h
+dGlvbl9zZWN0aW9uX3VpZHMIAAAAbm9kZV91aWQoAQAAAHMKAAAAY2xlYXJDYWNoZXMKAAAAcG9y
+dGFsX3VybHMPAAAAZ2V0UG9ydGFsT2JqZWN0cxMAAABkZWxpdmVyeS5zdGFydF9kYXRlcxkAAABB
+Y2NvdW50aW5nIE9wZXJhdGlvbiBEYXRlcwUAAAB0aXRsZXMFAAAAVGl0bGVzDAAAAHNvdXJjZV9k
+ZWJpdHMFAAAARGViaXRzDQAAAHNvdXJjZV9jcmVkaXRzBgAAAENyZWRpdHMJAAAAcmVmZXJlbmNl
+cyAAAABBY2NvdW50aW5nIFRyYW5zYWN0aW9uIFJlZmVyZW5jZXMLAAAAbmV0X2JhbGFuY2VzBwAA
+AEJhbGFuY2VzBAAAAHBhdGhzDwAAAGdldFBoeXNpY2FsUGF0aHMHAAAAZm9ybV9pZHMlAAAAQWNj
+b3VudF92aWV3QWNjb3VudGluZ1RyYW5zYWN0aW9uTGlzdHMOAAAAc2VsZWN0aW9uX25hbWVzGwAA
+AGFjb3VudF9wcmVmZXJlbmNlX3NlbGVjdGlvbnMQAAAAc2VsZWN0aW9uX3BhcmFtc3MRAAAAc2Vs
+ZWN0aW9uX2NvbHVtbnNzFAAAAGxpc3Rib3hfZGlzcGxheV9tb2RlcwwAAABGbGF0TGlzdE1vZGVz
+FAAAAHNlbGVjdGlvbl9zb3J0X29yZGVycxIAAABkZWxpdmVyeS5zdG9wX2RhdGVzCQAAAGFzY2Vu
+ZGluZ3MLAAAAcHJlZmVyZW5jZXMoFwAAAHMYAAAAUHJvZHVjdHMuRVJQNUZvcm0uUmVwb3J0cw0A
+AABSZXBvcnRTZWN0aW9ucwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzBwAAAHJlcXVlc3RzCQAA
+AF9nZXRpdGVtX3MHAAAAYXRfZGF0ZXMcAAAAdHJhbnNhY3Rpb25fc2VjdGlvbl9jYXRlZ29yeXME
+AAAATm9uZXMHAAAAYWNjb3VudHMTAAAAZGVzdGluYXRpb25fc2VjdGlvbnMOAAAAc291cmNlX3Bh
+eW1lbnRzHAAAAHRyYW5zYWN0aW9uX3NpbXVsYXRpb25fc3RhdGVzCQAAAGZyb21fZGF0ZXMXAAAA
+b21pdF9ncm91cGluZ19yZWZlcmVuY2VzBgAAAHBhcmFtc3MLAAAAcHJlZmVyZW5jZXNzBwAAAF93
+cml0ZV9zFwAAAFByb2R1Y3RzLkVSUDVUeXBlLkNhY2hlcwoAAABjbGVhckNhY2hlcwYAAAByZXN1
+bHRzBgAAAHBvcnRhbHMPAAAAYWNjb3VudF9jb2x1bW5zKBcAAABzGAAAAFByb2R1Y3RzLkVSUDVG
+b3JtLlJlcG9ydHMNAAAAUmVwb3J0U2VjdGlvbnMJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0cwcA
+AAByZXF1ZXN0cwkAAABfZ2V0aXRlbV9zBwAAAGF0X2RhdGVzHAAAAHRyYW5zYWN0aW9uX3NlY3Rp
+b25fY2F0ZWdvcnlzBAAAAE5vbmVzBwAAAGFjY291bnRzEwAAAGRlc3RpbmF0aW9uX3NlY3Rpb25z
+DgAAAHNvdXJjZV9wYXltZW50cxwAAAB0cmFuc2FjdGlvbl9zaW11bGF0aW9uX3N0YXRlcwkAAABm
+cm9tX2RhdGVzFwAAAG9taXRfZ3JvdXBpbmdfcmVmZXJlbmNlcwYAAABwYXJhbXNzCwAAAHByZWZl
+cmVuY2VzcwcAAABfd3JpdGVfcxcAAABQcm9kdWN0cy5FUlA1VHlwZS5DYWNoZXMKAAAAY2xlYXJD
+YWNoZXMGAAAAcmVzdWx0cwYAAABwb3J0YWxzDwAAAGFjY291bnRfY29sdW1ucygAAAAAKAAAAABz
+DwAAAFNjcmlwdCAoUHl0aG9uKXMyAAAAQWNjb3VudE1vZHVsZV9nZXRBY2NvdW50U3RhdGVtZW50
+UmVwb3J0U2VjdGlvbkxpc3QBAAAAc2AAAAAACA0BDwMPAQ8BGAEYARgBDwEYARgCBwEJAQkBCQEJ
+AQkBEQQHAQkCCQIJAggDBwEQARQBBwEvAQcBLwEHAS8CDQEHAgYBGwIAAQkBCQQJAQkBCQEPAwkB
+GwQGAQwCDwEoAQAAAHMyAAAAQWNjb3VudE1vZHVsZV9nZXRBY2NvdW50U3RhdGVtZW50UmVwb3J0
+U2VjdGlvbkxpc3QoAQAAAHMyAAAAQWNjb3VudE1vZHVsZV9nZXRBY2NvdW50U3RhdGVtZW50UmVw
+b3J0U2VjdGlvbkxpc3QoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzCAAAADxtb2R1bGU+
+AQAAAHMAAAAA</string> </value>
+        </item>
+        <item>
+            <key> <string>_dav_writelocks</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>_filepath</string> </key>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/AccountModule_getAccountStatementReportSectionList</string> </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>0</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>Products.ERP5Form.Report</string>
+                            <string>ReportSection</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>request</string>
+                            <string>_getitem_</string>
+                            <string>at_date</string>
+                            <string>transaction_section_category</string>
+                            <string>None</string>
+                            <string>account</string>
+                            <string>destination_section</string>
+                            <string>source_payment</string>
+                            <string>transaction_simulation_state</string>
+                            <string>from_date</string>
+                            <string>omit_grouping_reference</string>
+                            <string>params</string>
+                            <string>preferences</string>
+                            <string>_write_</string>
+                            <string>Products.ERP5Type.Cache</string>
+                            <string>clearCache</string>
+                            <string>result</string>
+                            <string>portal</string>
+                            <string>account_columns</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>AccountModule_getAccountStatementReportSectionList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Persistence</string>
+          <string>PersistentMapping</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_container</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getBankAccountItemList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getBankAccountItemList.xml
new file mode 100755
index 0000000000000000000000000000000000000000..bf56cf1dbc06ce2609048e608e58b4d432aa1d3b
--- /dev/null
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getBankAccountItemList.xml
@@ -0,0 +1,180 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.PythonScripts.PythonScript</string>
+          <string>PythonScript</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Python_magic</string> </key>
+            <value> <string encoding="base64">O/INCg==</string> </value>
+        </item>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>portal = context.getPortalObject()\n
+if organisation == \'\' :\n
+  organisation = context.REQUEST.get(\'organisation\', None)\n
+if organisation is None : \n
+  organisation = portal.portal_preferences.getPreferredAccountingTransactionSourceSection()\n
+\n
+organisation = portal.restrictedTraverse(organisation)\n
+item_list = [(\'\', \'\')]\n
+for bank in organisation.objectValues(portal_type = [\'Bank Account\', \'Cash Register\']):\n
+  item_list.append((bank.getTitle(), bank.getRelativeUrl()))\n
+\n
+return item_list\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value> <string encoding="base64">YwAAAAAAAAAAAgAAAEAAAABzEAAAAGQBAGQCAIQBAFoAAGQAAFMoAwAAAE5zAAAAAGMBAAAACAAA
+AA8AAABDAAAAc/wAAAB0AAB0AQBkAQCDAgCDAAB9AwB8AABkAgBqAgBvJQABdAAAdAAAdAEAZAMA
+gwIAZAQAgwIAZAUAdAQAgwIAfQAAbgEAAXwAAHQEAGoIAG8fAAF0AAB0AAB8AwBkBgCDAgBkBwCD
+AgCDAAB9AABuAQABdAAAfAMAZAgAgwIAfAAAgwEAfQAAZAIAZAIAZgIAZwEAfQUAeF0AdAYAdAAA
+fAAAZAkAgwIAZAoAZAsAZAwAZwIAgwABgwEARF03AH0HAHQAAHwFAGQNAIMCAHQAAHwHAGQOAIMC
+AIMAAHQAAHwHAGQPAIMCAIMAAGYCAIMBAAFxuQBXfAUAU2QAAFMoEAAAAE5zDwAAAGdldFBvcnRh
+bE9iamVjdHMAAAAAcwcAAABSRVFVRVNUcwMAAABnZXRzDAAAAG9yZ2FuaXNhdGlvbnMSAAAAcG9y
+dGFsX3ByZWZlcmVuY2Vzcy4AAABnZXRQcmVmZXJyZWRBY2NvdW50aW5nVHJhbnNhY3Rpb25Tb3Vy
+Y2VTZWN0aW9ucxIAAAByZXN0cmljdGVkVHJhdmVyc2VzDAAAAG9iamVjdFZhbHVlc3MLAAAAcG9y
+dGFsX3R5cGVzDAAAAEJhbmsgQWNjb3VudHMNAAAAQ2FzaCBSZWdpc3RlcnMGAAAAYXBwZW5kcwgA
+AABnZXRUaXRsZXMOAAAAZ2V0UmVsYXRpdmVVcmwoCAAAAHMJAAAAX2dldGF0dHJfcwcAAABjb250
+ZXh0cwYAAABwb3J0YWxzDAAAAG9yZ2FuaXNhdGlvbnMEAAAATm9uZXMJAAAAaXRlbV9saXN0cwkA
+AABfZ2V0aXRlcl9zBAAAAGJhbmsoCAAAAHMMAAAAb3JnYW5pc2F0aW9ucwkAAABfZ2V0YXR0cl9z
+BwAAAGNvbnRleHRzBgAAAHBvcnRhbHMEAAAATm9uZXMJAAAAaXRlbV9saXN0cwkAAABfZ2V0aXRl
+cl9zBAAAAGJhbmsoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzJAAAAEFjY291bnRNb2R1
+bGVfZ2V0QmFua0FjY291bnRJdGVtTGlzdAEAAABzFAAAABIBDQElAQ0BHwIVAQ8BJQAJATICKAEA
+AABzJAAAAEFjY291bnRNb2R1bGVfZ2V0QmFua0FjY291bnRJdGVtTGlzdCgBAAAAcyQAAABBY2Nv
+dW50TW9kdWxlX2dldEJhbmtBY2NvdW50SXRlbUxpc3QoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5
+dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
+        </item>
+        <item>
+            <key> <string>_filepath</string> </key>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/AccountModule_getBankAccountItemList</string> </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>organisation = \'\'</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>1</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>organisation</string>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>portal</string>
+                            <string>None</string>
+                            <string>item_list</string>
+                            <string>_getiter_</string>
+                            <string>bank</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <string></string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>AccountModule_getBankAccountItemList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getGeneralLedgerReportSectionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getGeneralLedgerReportSectionList.xml
index 184795697b578c63b548f0340ff7c21987a44944..22af32934e52db6bf08662827a65f09096046894 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getGeneralLedgerReportSectionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getGeneralLedgerReportSectionList.xml
@@ -91,6 +91,7 @@ params = {\n
   \'simulation_state\'             : transaction_simulation_state,\n
   \'accounting_transaction_line_currency\' : None,\n
   \'omit_grouping_reference\'      : omit_grouping_reference,\n
+  \'from_date_summary\' : 1\n
 }\n
 \n
 preferences = {\n
@@ -100,42 +101,52 @@ preferences = {\n
   \'preferred_accounting_transaction_section_category\' :\n
                     transaction_section_category,\n
   # XXX put omit_grouping_reference in preferences ?\n
-  \'preferred_accounting_omit_grouping_reference\' : omit_grouping_reference,\n
+  #\'preferred_accounting_omit_grouping_reference\' : omit_grouping_reference,\n
 }\n
 \n
 if from_date:\n
   params[\'from_date\'] = from_date\n
   preferences[\'preferred_accounting_transaction_from_date\'] = from_date\n
 \n
+## FIXME: issue in reporting famework in ERP5 \n
+from Products.ERP5Type.Cache import clearCache\n
+clearCache() # for preferences\n
+\n
 result = []\n
 portal = context.portal_url.getPortalObject()\n
 \n
 account_columns = (\n
-  (\'source_reference\', \'Reference\'),\n
-  (\'delivery.stop_date\', \'Date\'),\n
+#  (\'source_reference\', \'Reference\'),\n
+  (\'delivery.start_date\', \'Date\'),\n
   (\'title\', \'Title\'),\n
-  (\'Type\', \'Type\'),\n
+  (\'translated_portal_type\', \'Type\'),\n
   (\'third_party\', \'Third Party\'),\n
-  (\'simulation_state\', \'State\'),\n
+  (\'translated_simulation_state_title\', \'State\'),\n
   (\'source_debit\', \'Debit\'),\n
   (\'source_credit\', \'Credit\'),\n
-  (\'source_balance\', \'Balance\'),\n
+  (\'net_balance\', \'Balance\'),\n
 )\n
 \n
 if gap :\n
-  gap_root = [ portal.portal_categories.gap.restrictedTraverse(gap) ] +\\\n
+  gap_value_list = [ portal.portal_categories.gap.restrictedTraverse(gap) ] +\\\n
                portal.portal_categories.gap.restrictedTraverse(gap)\\\n
                     .Category_getSortedCategoryChildValueList()\n
 else :\n
-  cat = context.portal_preferences.getPreferredAccountingTransactionGap() \\\n
+  cat = \'gap/%s\'%context.portal_preferences.getPreferredAccountingTransactionGap() \\\n
         or context.getPortalDefaultGapRoot()\n
 \n
-  gap_root = portal.portal_categories.resolveCategory(cat)\\\n
+  gap_value_list = portal.portal_categories.resolveCategory(cat)\\\n
                 .Category_getSortedCategoryChildValueList()\n
 \n
+# we don\'t want to display accounts that don\'t have any transactions associated,\n
+# so we use a cache to see if the account contains transaction or not ( regardless\n
+# of from_date )\n
 account_inventory_list_cache = {}\n
+account_inventory_list_cache_params = params.copy()\n
+if account_inventory_list_cache_params.has_key(\'from_date\') :\n
+  del account_inventory_list_cache_params[\'from_date\']\n
 \n
-for c in gap_root :\n
+for c in gap_value_list :\n
   account_list = c.getGapRelatedValueList(portal_type="Account")\n
   strict_account_list = c.getGapRelatedValueList(\n
                           portal_type="Account", strict_membership = 1)\n
@@ -144,8 +155,8 @@ for c in gap_root :\n
   for account in account_list :\n
     if account.getUid() not in account_inventory_list_cache :\n
       account_inventory_list_cache[account.getUid()] = len(portal.\\\n
-          portal_simulation.getInventoryList(\n
-          node_uid = account.getUid(), **params))\n
+          portal_simulation.getInventoryList( omit_simulation = 1,\n
+          node_uid = account.getUid(), **account_inventory_list_cache_params))\n
 \n
   if account_inventory_list_cache[account.getUid()] != 0 :\n
     skip_branch = 0\n
@@ -163,36 +174,58 @@ for c in gap_root :\n
       level = len(c.getPhysicalPath()) - 4,\n
       form_id = None) )\n
 \n
-  # TODO: detail for account_type as in trial balance\n
   if len(strict_account_list):\n
     for account in strict_account_list:\n
       if account.getAccountTypeId() in (\'payable\', \'receivable\') :\n
-        # Entities\n
-        result.append(ReportSection(\n
-          path = account.getPhysicalPath(),\n
-          title = "%s: %s" % (c.getId(), account.getTitle()),\n
-          level = 9,\n
-          form_id = \'Account_viewAccountingTransactionList\',\n
-          selection_name = \'acount_selection\',\n
-          selection_params = params,\n
-          selection_columns = account_columns,\n
-          listbox_display_mode = \'FlatListMode\',\n
-          selection_sort_order = [(\'delivery.stop_date\', \'ascending\')],\n
-          preferences = preferences ))\n
+        for third_party_path in account.Account_getDestinationSectionList(\n
+                                                                at_date = at_date,\n
+                                                                simulation_state = transaction_simulation_state ) :\n
+          third_party_params = params.copy()\n
+          if third_party_path is not None :\n
+            third_party = context.getPortalObject().restrictedTraverse(third_party_path)\n
+            third_party_params[\'destination_section_uid\'] = third_party.getUid()\n
+            title = "%s: %s (%s)" % ( c.getId(),\n
+                                                     account.getTitle(),\n
+                                                     third_party.getTitle())\n
+          else :\n
+            third_party_params[\'no_destination_section_uid\'] = 1\n
+            title = "%s: %s" % ( c.getId(), account.getTitle())\n
+          result.append(ReportSection(\n
+            path = account.getPhysicalPath(),\n
+            title = title,\n
+            level = 9,\n
+            form_id = \'Account_viewAccountingTransactionList\',\n
+            selection_name = \'acount_preference_selection\',\n
+            selection_params = third_party_params.copy(),\n
+            selection_columns = account_columns,\n
+            listbox_display_mode = \'FlatListMode\',\n
+            selection_sort_order = [(\'delivery.stop_date\', \'ascending\')],\n
+            preferences = preferences ))\n
 \n
-      elif account.getAccountTypeId() == \'bank\' :\n
+      elif account.getAccountTypeId() in (\'bank\', \'cash\') :\n
         # Bank Account\n
-        result.append(ReportSection(\n
-          path = account.getPhysicalPath(),\n
-          title = "%s: %s" % (c.getId(), account.getTitle()),\n
-          level = 9,\n
-          form_id = \'Account_viewAccountingTransactionList\',\n
-          selection_name = \'acount_selection\',\n
-          selection_params = params,\n
-          selection_columns = account_columns,\n
-          listbox_display_mode = \'FlatListMode\',\n
-          selection_sort_order = [(\'delivery.stop_date\', \'ascending\')],\n
-          preferences = preferences ))\n
+        for bank_account_path in account.Account_getSourcePaymentList() :\n
+          bank_params = params.copy()\n
+          if bank_account_path is not None :\n
+            bank_account = context.getPortalObject().restrictedTraverse(bank_account_path)\n
+            bank_params[\'source_payment_uid\'] = bank_account.getUid()\n
+            title = "%s: %s (%s)" % ( c.getId(),\n
+                                                     account.getTitle(),\n
+                                                     bank_account.getTitle())\n
+          else :\n
+            bank_params[\'no_source_payment_uid\'] = 1\n
+            title = "%s: %s" % ( c.getId(), account.getTitle())\n
+          result.append(ReportSection(\n
+              path = account.getPhysicalPath(),\n
+              title = title,\n
+              level = 9,\n
+              form_id = \'Account_viewAccountingTransactionList\',\n
+              selection_name = \'acount_preference_selection\',\n
+              selection_params = bank_params.copy(),\n
+              selection_columns = account_columns,\n
+              listbox_display_mode = \'FlatListMode\',\n
+              selection_sort_order = [(\'delivery.stop_date\', \'ascending\')],\n
+              preferences = preferences ))\n
       \n
       else :\n
         result.append(ReportSection(\n
@@ -200,7 +233,7 @@ for c in gap_root :\n
           title = "%s: %s" % (c.getId(), account.getTitle()),\n
           level = 9,\n
           form_id = \'Account_viewAccountingTransactionList\',\n
-          selection_name = \'acount_selection\',\n
+          selection_name = \'acount_preference_selection\',\n
           selection_params = params,\n
           selection_columns = account_columns,\n
           listbox_display_mode = \'FlatListMode\',\n
@@ -213,90 +246,113 @@ return result\n
         </item>
         <item>
             <key> <string>_code</string> </key>
-            <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAACAAAABAAAAAQwAA
-AHNGBgAAZAEAawAAbAEAfQEAAXQCAHQDAGQCAIMCAH0EAHQFAHwEAGQDAIMCAH0GAHQFAHwEAGQE
+            <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAACoAAABOAAAAQwAA
+AHNeCAAAZAEAawAAbAEAfQEAAXQCAHQDAGQCAIMCAH0EAHQFAHwEAGQDAIMCAH0GAHQFAHwEAGQE
 AIMCAH0HAHQFAHwEAGQFAIMCAH0IAHQCAHwEAGQGAIMCAGQHAHQJAIMCAH0KAHQCAHwEAGQGAIMC
 AGQIAHQJAIMCAH0LAHQCAHwEAGQGAIMCAGQJAGQKAIMCAH0MAHQCAHwEAGQGAIMCAGQLAGQMAIMC
 AH0NAHQCAHwEAGQGAIMCAGQNAGQMAIMCAH0OAGgAAARkAwB8BgADPARkDgB8BwADPARkBAB8BwAD
-PARkDwB8CAADPARkEAB0CQADPARkDQB8DgADPH0PAGgAAARkEQB8BgADPARkEgB8CAADPARkEwB8
-BwADPARkFAB8DgADPH0QAHwKAG8kAAF8CgB0EQB8DwCDAQBkBwA8fAoAdBEAfBAAgwEAZBUAPG4B
-AAFnAAB9EgB0AgB0AgB0AwBkFgCDAgBkFwCDAgCDAAB9EwBkGABkGQBmAgBkGgBkGwBmAgBkHABk
-HQBmAgBkHgBkHgBmAgBkHwBkIABmAgBkDwBkIQBmAgBkIgBkIwBmAgBkJABkJQBmAgBkJgBkJwBm
-AgBmCQB9FAB8CwBvXwABdAIAdAIAdAIAfBMAZCgAgwIAZAgAgwIAZCkAgwIAfAsAgwEAZwEAdAIA
-dAIAdAIAdAIAfBMAZCgAgwIAZAgAgwIAZCkAgwIAfAsAgwEAZCoAgwIAgwAAF30VAG5ZAAF0AgB0
-AgB0AwBkKwCDAgBkLACDAgCDAABwEAABdAIAdAMAZC0AgwIAgwAAfRYAdAIAdAIAdAIAfBMAZCgA
-gwIAZC4AgwIAfBYAgwEAZCoAgwIAgwAAfRUAaAAAfRcAeK0DdBgAfBUAgwEARF2fA30ZAHQCAHwZ
-AGQvAIMCAGQwAGQxAIMAAX0aAHQCAHwZAGQvAIMCAGQwAGQxAGQyAGQKAIMAAn0bAGQKAH0cAHiA
-AHQYAHwaAIMBAERdcgB9HQB0AgB8HQBkMwCDAgCDAAB8FwBqBwBvUwABdB4AdB8AdAIAdAIAfBMA
-ZDQAgwIAZDUAgwIAZDYAdAIAfB0AZDMAgwIAgwAAfA8AjQEBgwEAdBEAfBcAgwEAdAIAfB0AZDMA
-gwIAgwAAPHHqAgFx6gJXdAUAfBcAdAIAfB0AZDMAgwIAgwAAgwIAZAwAagMAbwoAAWQMAH0cAG4B
-AAF8HABvBwABcZsCbgEAAXwNAG8dAAF0HgB8GgCDAQBvEAABdB4AfBsAgwEAZAoAagMAb3YAAXQC
-AHwSAGQ3AIMCAHwBAGQ4AHQCAHwZAGQ5AIMCAIMAAGQcAGQ6AHQCAHwZAGQ7AIMCAIMAAHQCAHwZ
-AGQ8AIMCAIMAAGYCABZkPQB0HgB0AgB8GQBkOQCDAgCDAACDAQBkPgAYZD8AdAkAgwAEgwEAAW4B
-AAF0HgB8GwCDAQBv9gEBePMBdBgAfBsAgwEARF3hAX0dAHQCAHwdAGRAAIMCAIMAAGRBAGRCAGYC
-AGoGAG+NAAF0AgB8EgBkNwCDAgB8AQBkOAB0AgB8HQBkOQCDAgCDAABkHABkOgB0AgB8GQBkOwCD
-AgCDAAB0AgB8HQBkPACDAgCDAABmAgAWZD0AZEMAZD8AZEQAZEUAZEYAZEcAfA8AZEgAfBQAZEkA
-ZEoAZEsAZBoAZEwAZgIAZwEAZE0AfBAAgwAKgwEAAXFRBAF0AgB8HQBkQACDAgCDAABkTgBqAgBv
-jQABdAIAfBIAZDcAgwIAfAEAZDgAdAIAfB0AZDkAgwIAgwAAZBwAZDoAdAIAfBkAZDsAgwIAgwAA
-dAIAfB0AZDwAgwIAgwAAZgIAFmQ9AGRDAGQ/AGREAGRFAGRGAGRHAHwPAGRIAHwUAGRJAGRKAGRL
-AGQaAGRMAGYCAGcBAGRNAHwQAIMACoMBAAFxUQQBdAIAfBIAZDcAgwIAfAEAZDgAdAIAfB0AZDkA
-gwIAgwAAZBwAZDoAdAIAfBkAZDsAgwIAgwAAdAIAfB0AZDwAgwIAgwAAZgIAFmQ9AGRDAGQ/AGRE
-AGRFAGRGAGRHAHwPAGRIAHwUAGRJAGRKAGRLAGQaAGRMAGYCAGcBAGRNAHwQAIMACoMBAAFxUQRX
-cZsCAXGbAld8EgBTZAAAUyhPAAAATigBAAAAcw0AAABSZXBvcnRTZWN0aW9ucwcAAABSRVFVRVNU
-cwcAAABhdF9kYXRlcxwAAAB0cmFuc2FjdGlvbl9zZWN0aW9uX2NhdGVnb3J5cxwAAAB0cmFuc2Fj
-dGlvbl9zaW11bGF0aW9uX3N0YXRlcwMAAABnZXRzCQAAAGZyb21fZGF0ZXMDAAAAZ2FwcxMAAABv
-bWl0X2VtcHR5X2FjY291bnRzaQEAAABzEgAAAGRpc3BsYXlfY2F0ZWdvcmllc2kAAAAAcxcAAABv
-bWl0X2dyb3VwaW5nX3JlZmVyZW5jZXMQAAAAc2VjdGlvbl9jYXRlZ29yeXMQAAAAc2ltdWxhdGlv
-bl9zdGF0ZXMkAAAAYWNjb3VudGluZ190cmFuc2FjdGlvbl9saW5lX2N1cnJlbmN5cygAAABwcmVm
-ZXJyZWRfYWNjb3VudGluZ190cmFuc2FjdGlvbl9hdF9kYXRlczEAAABwcmVmZXJyZWRfYWNjb3Vu
-dGluZ190cmFuc2FjdGlvbl9zaW11bGF0aW9uX3N0YXRlczEAAABwcmVmZXJyZWRfYWNjb3VudGlu
-Z190cmFuc2FjdGlvbl9zZWN0aW9uX2NhdGVnb3J5cywAAABwcmVmZXJyZWRfYWNjb3VudGluZ19v
-bWl0X2dyb3VwaW5nX3JlZmVyZW5jZXMqAAAAcHJlZmVycmVkX2FjY291bnRpbmdfdHJhbnNhY3Rp
-b25fZnJvbV9kYXRlcwoAAABwb3J0YWxfdXJscw8AAABnZXRQb3J0YWxPYmplY3RzEAAAAHNvdXJj
-ZV9yZWZlcmVuY2VzCQAAAFJlZmVyZW5jZXMSAAAAZGVsaXZlcnkuc3RvcF9kYXRlcwQAAABEYXRl
-cwUAAAB0aXRsZXMFAAAAVGl0bGVzBAAAAFR5cGVzCwAAAHRoaXJkX3BhcnR5cwsAAABUaGlyZCBQ
-YXJ0eXMFAAAAU3RhdGVzDAAAAHNvdXJjZV9kZWJpdHMFAAAARGViaXRzDQAAAHNvdXJjZV9jcmVk
-aXRzBgAAAENyZWRpdHMOAAAAc291cmNlX2JhbGFuY2VzBwAAAEJhbGFuY2VzEQAAAHBvcnRhbF9j
-YXRlZ29yaWVzcxIAAAByZXN0cmljdGVkVHJhdmVyc2VzKAAAAENhdGVnb3J5X2dldFNvcnRlZENh
-dGVnb3J5Q2hpbGRWYWx1ZUxpc3RzEgAAAHBvcnRhbF9wcmVmZXJlbmNlc3MkAAAAZ2V0UHJlZmVy
-cmVkQWNjb3VudGluZ1RyYW5zYWN0aW9uR2FwcxcAAABnZXRQb3J0YWxEZWZhdWx0R2FwUm9vdHMP
-AAAAcmVzb2x2ZUNhdGVnb3J5cxYAAABnZXRHYXBSZWxhdGVkVmFsdWVMaXN0cwsAAABwb3J0YWxf
-dHlwZXMHAAAAQWNjb3VudHMRAAAAc3RyaWN0X21lbWJlcnNoaXBzBgAAAGdldFVpZHMRAAAAcG9y
-dGFsX3NpbXVsYXRpb25zEAAAAGdldEludmVudG9yeUxpc3RzCAAAAG5vZGVfdWlkcwYAAABhcHBl
-bmRzBAAAAHBhdGhzDwAAAGdldFBoeXNpY2FsUGF0aHMGAAAAJXM6ICVzcwUAAABnZXRJZHMIAAAA
-Z2V0VGl0bGVzBQAAAGxldmVsaQQAAABzBwAAAGZvcm1faWRzEAAAAGdldEFjY291bnRUeXBlSWRz
-BwAAAHBheWFibGVzCgAAAHJlY2VpdmFibGVpCQAAAHMlAAAAQWNjb3VudF92aWV3QWNjb3VudGlu
-Z1RyYW5zYWN0aW9uTGlzdHMOAAAAc2VsZWN0aW9uX25hbWVzEAAAAGFjb3VudF9zZWxlY3Rpb25z
-EAAAAHNlbGVjdGlvbl9wYXJhbXNzEQAAAHNlbGVjdGlvbl9jb2x1bW5zcxQAAABsaXN0Ym94X2Rp
-c3BsYXlfbW9kZXMMAAAARmxhdExpc3RNb2RlcxQAAABzZWxlY3Rpb25fc29ydF9vcmRlcnMJAAAA
-YXNjZW5kaW5ncwsAAABwcmVmZXJlbmNlc3MEAAAAYmFuayggAAAAcxgAAABQcm9kdWN0cy5FUlA1
-Rm9ybS5SZXBvcnRzDQAAAFJlcG9ydFNlY3Rpb25zCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMH
-AAAAcmVxdWVzdHMJAAAAX2dldGl0ZW1fcwcAAABhdF9kYXRlcxwAAAB0cmFuc2FjdGlvbl9zZWN0
-aW9uX2NhdGVnb3J5cxwAAAB0cmFuc2FjdGlvbl9zaW11bGF0aW9uX3N0YXRlcwQAAABOb25lcwkA
-AABmcm9tX2RhdGVzAwAAAGdhcHMTAAAAb21pdF9lbXB0eV9hY2NvdW50c3MSAAAAZGlzcGxheV9j
-YXRlZ29yaWVzcxcAAABvbWl0X2dyb3VwaW5nX3JlZmVyZW5jZXMGAAAAcGFyYW1zcwsAAABwcmVm
-ZXJlbmNlc3MHAAAAX3dyaXRlX3MGAAAAcmVzdWx0cwYAAABwb3J0YWxzDwAAAGFjY291bnRfY29s
-dW1uc3MIAAAAZ2FwX3Jvb3RzAwAAAGNhdHMcAAAAYWNjb3VudF9pbnZlbnRvcnlfbGlzdF9jYWNo
-ZXMJAAAAX2dldGl0ZXJfcwEAAABjcwwAAABhY2NvdW50X2xpc3RzEwAAAHN0cmljdF9hY2NvdW50
-X2xpc3RzCwAAAHNraXBfYnJhbmNocwcAAABhY2NvdW50cwMAAABsZW5zBwAAAF9hcHBseV8oIAAA
-AHMYAAAAUHJvZHVjdHMuRVJQNUZvcm0uUmVwb3J0cw0AAABSZXBvcnRTZWN0aW9ucwkAAABfZ2V0
-YXR0cl9zBwAAAGNvbnRleHRzBwAAAHJlcXVlc3RzCQAAAF9nZXRpdGVtX3MHAAAAYXRfZGF0ZXMc
-AAAAdHJhbnNhY3Rpb25fc2VjdGlvbl9jYXRlZ29yeXMcAAAAdHJhbnNhY3Rpb25fc2ltdWxhdGlv
-bl9zdGF0ZXMEAAAATm9uZXMJAAAAZnJvbV9kYXRlcwMAAABnYXBzEwAAAG9taXRfZW1wdHlfYWNj
-b3VudHNzEgAAAGRpc3BsYXlfY2F0ZWdvcmllc3MXAAAAb21pdF9ncm91cGluZ19yZWZlcmVuY2Vz
-BgAAAHBhcmFtc3MLAAAAcHJlZmVyZW5jZXNzBwAAAF93cml0ZV9zBgAAAHJlc3VsdHMGAAAAcG9y
-dGFscw8AAABhY2NvdW50X2NvbHVtbnNzCAAAAGdhcF9yb290cwMAAABjYXRzHAAAAGFjY291bnRf
-aW52ZW50b3J5X2xpc3RfY2FjaGVzCQAAAF9nZXRpdGVyX3MBAAAAY3MMAAAAYWNjb3VudF9saXN0
-cxMAAABzdHJpY3RfYWNjb3VudF9saXN0cwsAAABza2lwX2JyYW5jaHMHAAAAYWNjb3VudHMDAAAA
-bGVucwcAAABfYXBwbHlfKAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcy8AAABBY2NvdW50
-TW9kdWxlX2dldEdlbmVyYWxMZWRnZXJSZXBvcnRTZWN0aW9uTGlzdAEAAABzugAAAAADDQEPAg8B
-DwEPARgBGAEYARgDGAMHAQkBCQEJAQkBCQEIAwcBCQIJAgkCCAMHARABFAIGARsCAAEJAQkBCQEJ
-AQkBCQEJAQkBDwMHATMBLAMfAQ8CKgMGAg0ABgEYAR4DBgENAAYBGQEhAjYCIgEKAwcBBwIHAQ0B
-FgESARIBJQEcAQ4DDQENAAYBIgISARIBNwQGAQwCDwEOAhwCEgESATcEBgEMAg8BEQMSARIBNwQG
-AQwCDwEWAigBAAAAcy8AAABBY2NvdW50TW9kdWxlX2dldEdlbmVyYWxMZWRnZXJSZXBvcnRTZWN0
-aW9uTGlzdCgBAAAAcy8AAABBY2NvdW50TW9kdWxlX2dldEdlbmVyYWxMZWRnZXJSZXBvcnRTZWN0
-aW9uTGlzdCgAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAAcwAA
-AAA=</string> </value>
+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
+QQCDAgCDAABmAgAWZEIAZEwAZEQAZE0AZE4AZE8AZFAAfA8AZFEAfBYAZFIAZFMAZFQAZFUAZFYA
+ZgIAZwEAZFcAfBAAgwAKgwEAAXGfBFdx4wIBceMCV3wUAFNkAABTKF0AAABOKAEAAABzDQAAAFJl
+cG9ydFNlY3Rpb25zBwAAAFJFUVVFU1RzBwAAAGF0X2RhdGVzHAAAAHRyYW5zYWN0aW9uX3NlY3Rp
+b25fY2F0ZWdvcnlzHAAAAHRyYW5zYWN0aW9uX3NpbXVsYXRpb25fc3RhdGVzAwAAAGdldHMJAAAA
+ZnJvbV9kYXRlcwMAAABnYXBzEwAAAG9taXRfZW1wdHlfYWNjb3VudHNpAQAAAHMSAAAAZGlzcGxh
+eV9jYXRlZ29yaWVzaQAAAABzFwAAAG9taXRfZ3JvdXBpbmdfcmVmZXJlbmNlcxAAAABzZWN0aW9u
+X2NhdGVnb3J5cxAAAABzaW11bGF0aW9uX3N0YXRlcyQAAABhY2NvdW50aW5nX3RyYW5zYWN0aW9u
+X2xpbmVfY3VycmVuY3lzEQAAAGZyb21fZGF0ZV9zdW1tYXJ5cygAAABwcmVmZXJyZWRfYWNjb3Vu
+dGluZ190cmFuc2FjdGlvbl9hdF9kYXRlczEAAABwcmVmZXJyZWRfYWNjb3VudGluZ190cmFuc2Fj
+dGlvbl9zaW11bGF0aW9uX3N0YXRlczEAAABwcmVmZXJyZWRfYWNjb3VudGluZ190cmFuc2FjdGlv
+bl9zZWN0aW9uX2NhdGVnb3J5cyoAAABwcmVmZXJyZWRfYWNjb3VudGluZ190cmFuc2FjdGlvbl9m
+cm9tX2RhdGUoAQAAAHMKAAAAY2xlYXJDYWNoZXMKAAAAcG9ydGFsX3VybHMPAAAAZ2V0UG9ydGFs
+T2JqZWN0cxMAAABkZWxpdmVyeS5zdGFydF9kYXRlcwQAAABEYXRlcwUAAAB0aXRsZXMFAAAAVGl0
+bGVzFgAAAHRyYW5zbGF0ZWRfcG9ydGFsX3R5cGVzBAAAAFR5cGVzCwAAAHRoaXJkX3BhcnR5cwsA
+AABUaGlyZCBQYXJ0eXMhAAAAdHJhbnNsYXRlZF9zaW11bGF0aW9uX3N0YXRlX3RpdGxlcwUAAABT
+dGF0ZXMMAAAAc291cmNlX2RlYml0cwUAAABEZWJpdHMNAAAAc291cmNlX2NyZWRpdHMGAAAAQ3Jl
+ZGl0cwsAAABuZXRfYmFsYW5jZXMHAAAAQmFsYW5jZXMRAAAAcG9ydGFsX2NhdGVnb3JpZXNzEgAA
+AHJlc3RyaWN0ZWRUcmF2ZXJzZXMoAAAAQ2F0ZWdvcnlfZ2V0U29ydGVkQ2F0ZWdvcnlDaGlsZFZh
+bHVlTGlzdHMGAAAAZ2FwLyVzcxIAAABwb3J0YWxfcHJlZmVyZW5jZXNzJAAAAGdldFByZWZlcnJl
+ZEFjY291bnRpbmdUcmFuc2FjdGlvbkdhcHMXAAAAZ2V0UG9ydGFsRGVmYXVsdEdhcFJvb3RzDwAA
+AHJlc29sdmVDYXRlZ29yeXMEAAAAY29weXMHAAAAaGFzX2tleXMWAAAAZ2V0R2FwUmVsYXRlZFZh
+bHVlTGlzdHMLAAAAcG9ydGFsX3R5cGVzBwAAAEFjY291bnRzEQAAAHN0cmljdF9tZW1iZXJzaGlw
+cwYAAABnZXRVaWRzEQAAAHBvcnRhbF9zaW11bGF0aW9ucxAAAABnZXRJbnZlbnRvcnlMaXN0cw8A
+AABvbWl0X3NpbXVsYXRpb25zCAAAAG5vZGVfdWlkcwYAAABhcHBlbmRzBAAAAHBhdGhzDwAAAGdl
+dFBoeXNpY2FsUGF0aHMGAAAAJXM6ICVzcwUAAABnZXRJZHMIAAAAZ2V0VGl0bGVzBQAAAGxldmVs
+aQQAAABzBwAAAGZvcm1faWRzEAAAAGdldEFjY291bnRUeXBlSWRzBwAAAHBheWFibGVzCgAAAHJl
+Y2VpdmFibGVzIQAAAEFjY291bnRfZ2V0RGVzdGluYXRpb25TZWN0aW9uTGlzdHMXAAAAZGVzdGlu
+YXRpb25fc2VjdGlvbl91aWRzCwAAACVzOiAlcyAoJXMpcxoAAABub19kZXN0aW5hdGlvbl9zZWN0
+aW9uX3VpZGkJAAAAcyUAAABBY2NvdW50X3ZpZXdBY2NvdW50aW5nVHJhbnNhY3Rpb25MaXN0cw4A
+AABzZWxlY3Rpb25fbmFtZXMbAAAAYWNvdW50X3ByZWZlcmVuY2Vfc2VsZWN0aW9ucxAAAABzZWxl
+Y3Rpb25fcGFyYW1zcxEAAABzZWxlY3Rpb25fY29sdW1uc3MUAAAAbGlzdGJveF9kaXNwbGF5X21v
+ZGVzDAAAAEZsYXRMaXN0TW9kZXMUAAAAc2VsZWN0aW9uX3NvcnRfb3JkZXJzEgAAAGRlbGl2ZXJ5
+LnN0b3BfZGF0ZXMJAAAAYXNjZW5kaW5ncwsAAABwcmVmZXJlbmNlc3MEAAAAYmFua3MEAAAAY2Fz
+aHMcAAAAQWNjb3VudF9nZXRTb3VyY2VQYXltZW50TGlzdHMSAAAAc291cmNlX3BheW1lbnRfdWlk
+cxUAAABub19zb3VyY2VfcGF5bWVudF91aWQoKgAAAHMYAAAAUHJvZHVjdHMuRVJQNUZvcm0uUmVw
+b3J0cw0AAABSZXBvcnRTZWN0aW9ucwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzBwAAAHJlcXVl
+c3RzCQAAAF9nZXRpdGVtX3MHAAAAYXRfZGF0ZXMcAAAAdHJhbnNhY3Rpb25fc2VjdGlvbl9jYXRl
+Z29yeXMcAAAAdHJhbnNhY3Rpb25fc2ltdWxhdGlvbl9zdGF0ZXMEAAAATm9uZXMJAAAAZnJvbV9k
+YXRlcwMAAABnYXBzEwAAAG9taXRfZW1wdHlfYWNjb3VudHNzEgAAAGRpc3BsYXlfY2F0ZWdvcmll
+c3MXAAAAb21pdF9ncm91cGluZ19yZWZlcmVuY2VzBgAAAHBhcmFtc3MLAAAAcHJlZmVyZW5jZXNz
+BwAAAF93cml0ZV9zFwAAAFByb2R1Y3RzLkVSUDVUeXBlLkNhY2hlcwoAAABjbGVhckNhY2hlcwYA
+AAByZXN1bHRzBgAAAHBvcnRhbHMPAAAAYWNjb3VudF9jb2x1bW5zcw4AAABnYXBfdmFsdWVfbGlz
+dHMDAAAAY2F0cxwAAABhY2NvdW50X2ludmVudG9yeV9saXN0X2NhY2hlcyMAAABhY2NvdW50X2lu
+dmVudG9yeV9saXN0X2NhY2hlX3BhcmFtc3MJAAAAX2dldGl0ZXJfcwEAAABjcwwAAABhY2NvdW50
+X2xpc3RzEwAAAHN0cmljdF9hY2NvdW50X2xpc3RzCwAAAHNraXBfYnJhbmNocwcAAABhY2NvdW50
+cwMAAABsZW5zBwAAAF9hcHBseV9zEAAAAHRoaXJkX3BhcnR5X3BhdGhzEgAAAHRoaXJkX3BhcnR5
+X3BhcmFtc3MLAAAAdGhpcmRfcGFydHlzBQAAAHRpdGxlcxEAAABiYW5rX2FjY291bnRfcGF0aHML
+AAAAYmFua19wYXJhbXNzDAAAAGJhbmtfYWNjb3VudCgqAAAAcxgAAABQcm9kdWN0cy5FUlA1Rm9y
+bS5SZXBvcnRzDQAAAFJlcG9ydFNlY3Rpb25zCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMHAAAA
+cmVxdWVzdHMJAAAAX2dldGl0ZW1fcwcAAABhdF9kYXRlcxwAAAB0cmFuc2FjdGlvbl9zZWN0aW9u
+X2NhdGVnb3J5cxwAAAB0cmFuc2FjdGlvbl9zaW11bGF0aW9uX3N0YXRlcwQAAABOb25lcwkAAABm
+cm9tX2RhdGVzAwAAAGdhcHMTAAAAb21pdF9lbXB0eV9hY2NvdW50c3MSAAAAZGlzcGxheV9jYXRl
+Z29yaWVzcxcAAABvbWl0X2dyb3VwaW5nX3JlZmVyZW5jZXMGAAAAcGFyYW1zcwsAAABwcmVmZXJl
+bmNlc3MHAAAAX3dyaXRlX3MXAAAAUHJvZHVjdHMuRVJQNVR5cGUuQ2FjaGVzCgAAAGNsZWFyQ2Fj
+aGVzBgAAAHJlc3VsdHMGAAAAcG9ydGFscw8AAABhY2NvdW50X2NvbHVtbnNzDgAAAGdhcF92YWx1
+ZV9saXN0cwMAAABjYXRzHAAAAGFjY291bnRfaW52ZW50b3J5X2xpc3RfY2FjaGVzIwAAAGFjY291
+bnRfaW52ZW50b3J5X2xpc3RfY2FjaGVfcGFyYW1zcwkAAABfZ2V0aXRlcl9zAQAAAGNzDAAAAGFj
+Y291bnRfbGlzdHMTAAAAc3RyaWN0X2FjY291bnRfbGlzdHMLAAAAc2tpcF9icmFuY2hzBwAAAGFj
+Y291bnRzAwAAAGxlbnMHAAAAX2FwcGx5X3MQAAAAdGhpcmRfcGFydHlfcGF0aHMSAAAAdGhpcmRf
+cGFydHlfcGFyYW1zcwsAAAB0aGlyZF9wYXJ0eXMFAAAAdGl0bGVzEQAAAGJhbmtfYWNjb3VudF9w
+YXRocwsAAABiYW5rX3BhcmFtc3MMAAAAYmFua19hY2NvdW50KAAAAAAoAAAAAHMPAAAAU2NyaXB0
+IChQeXRob24pcy8AAABBY2NvdW50TW9kdWxlX2dldEdlbmVyYWxMZWRnZXJSZXBvcnRTZWN0aW9u
+TGlzdAEAAABz7gAAAAADDQEPAg8BDwEPARgBGAEYARgDGAMHAQkBCQEJAQkBCQERBAcBCQIJAggF
+BwEQARQDDQEHAgYBGwIAAgkBCQEJAQkBCQEJAQkBDwMHATMBLAMjAQ8CKgYGARUBFgEOAg0ABgEY
+AR4DBgENAAYBGQEnAjYCIgEKAwcBBwIHAQ0BFgESARIBJQEcAQ4CDQENAAYBHwEVAQYBEAESAQ0B
+IQEcARUBDwEXAhABKwESAQ8BGwQPAQwCDwESAh8CGQAGARIBDQEhARwBFQEPARcCEAErARIBDwEb
+BA8BDAIPARUDEgESATcEBgEMAg8BFgIoAQAAAHMvAAAAQWNjb3VudE1vZHVsZV9nZXRHZW5lcmFs
+TGVkZ2VyUmVwb3J0U2VjdGlvbkxpc3QoAQAAAHMvAAAAQWNjb3VudE1vZHVsZV9nZXRHZW5lcmFs
+TGVkZ2VyUmVwb3J0U2VjdGlvbkxpc3QoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzCAAA
+ADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
         </item>
         <item>
             <key> <string>_dav_writelocks</string> </key>
@@ -306,7 +362,7 @@ AAA=</string> </value>
         </item>
         <item>
             <key> <string>_filepath</string> </key>
-            <value> <string>Script (Python):/nexedi/erp5_accounting/AccountModule_getGeneralLedgerReportSectionList</string> </value>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/AccountModule_getGeneralLedgerReportSectionList</string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
@@ -354,12 +410,15 @@ AAA=</string> </value>
                             <string>params</string>
                             <string>preferences</string>
                             <string>_write_</string>
+                            <string>Products.ERP5Type.Cache</string>
+                            <string>clearCache</string>
                             <string>result</string>
                             <string>portal</string>
                             <string>account_columns</string>
-                            <string>gap_root</string>
+                            <string>gap_value_list</string>
                             <string>cat</string>
                             <string>account_inventory_list_cache</string>
+                            <string>account_inventory_list_cache_params</string>
                             <string>_getiter_</string>
                             <string>c</string>
                             <string>account_list</string>
@@ -368,6 +427,13 @@ AAA=</string> </value>
                             <string>account</string>
                             <string>len</string>
                             <string>_apply_</string>
+                            <string>third_party_path</string>
+                            <string>third_party_params</string>
+                            <string>third_party</string>
+                            <string>title</string>
+                            <string>bank_account_path</string>
+                            <string>bank_params</string>
+                            <string>bank_account</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getMirrorAccountUrl.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getMirrorAccountUrl.xml
index f174aa5171ef679dc9d3ff9da4f5c23e6d351db0..9197fc1a2c917ce49a3de232bde278e15a4a2dfe 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getMirrorAccountUrl.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_getMirrorAccountUrl.xml
@@ -73,7 +73,7 @@ name = selection.getName()\n
 object = brain.getObject()\n
 object = object.getDestinationValue()\n
 if object is None:\n
-  url = "#"\n
+  url = None\n
 else:\n
   url = object.absolute_url() + \'/view?selection_index=%s&selection_name=%s&reset=1\' % (index, name)\n
 \n
@@ -86,22 +86,22 @@ return url\n
             <key> <string>_code</string> </key>
             <value> <string encoding="base64">YwAAAAAAAAAAAwAAAEAAAABzEwAAAGUAAGUAAGQBAIQCAFoBAGQAAFMoAgAAAE5jAgAAAAgAAAAI
 AAAAQwAAAHOHAAAAdAAAfAEAZAEAgwIAgwAAfQMAdAAAfAEAZAIAgwIAgwAAfQQAdAAAfAAAZAMA
-gwIAgwAAfQUAdAAAfAUAZAQAgwIAgwAAfQUAfAUAdAYAaggAbwoAAWQFAH0HAG4hAAF0AAB8BQBk
-BgCDAgCDAABkBwB8AwB8BABmAgAWF30HAHwHAFNkAABTKAgAAABOcwgAAABnZXRJbmRleHMHAAAA
-Z2V0TmFtZXMJAAAAZ2V0T2JqZWN0cxMAAABnZXREZXN0aW5hdGlvblZhbHVlcwEAAAAjcwwAAABh
-YnNvbHV0ZV91cmxzMgAAAC92aWV3P3NlbGVjdGlvbl9pbmRleD0lcyZzZWxlY3Rpb25fbmFtZT0l
-cyZyZXNldD0xKAgAAABzCQAAAF9nZXRhdHRyX3MJAAAAc2VsZWN0aW9ucwUAAABpbmRleHMEAAAA
-bmFtZXMFAAAAYnJhaW5zBgAAAG9iamVjdHMEAAAATm9uZXMDAAAAdXJsKAgAAABzBQAAAGJyYWlu
-cwkAAABzZWxlY3Rpb25zCQAAAF9nZXRhdHRyX3MFAAAAaW5kZXhzBAAAAG5hbWVzBgAAAG9iamVj
-dHMEAAAATm9uZXMDAAAAdXJsKAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcyEAAABBY2Nv
-dW50TW9kdWxlX2dldE1pcnJvckFjY291bnRVcmwBAAAAcw4AAAASARIBEgESAQ0BCgIgAigCAAAA
-cwQAAABOb25lcyEAAABBY2NvdW50TW9kdWxlX2dldE1pcnJvckFjY291bnRVcmwoAgAAAHMEAAAA
-Tm9uZXMhAAAAQWNjb3VudE1vZHVsZV9nZXRNaXJyb3JBY2NvdW50VXJsKAAAAAAoAAAAAHMPAAAA
-U2NyaXB0IChQeXRob24pcwgAAAA8bW9kdWxlPgEAAABzAAAAAA==</string> </value>
+gwIAgwAAfQUAdAAAfAUAZAQAgwIAgwAAfQUAfAUAdAYAaggAbwoAAXQGAH0HAG4hAAF0AAB8BQBk
+BQCDAgCDAABkBgB8AwB8BABmAgAWF30HAHwHAFNkAABTKAcAAABOcwgAAABnZXRJbmRleHMHAAAA
+Z2V0TmFtZXMJAAAAZ2V0T2JqZWN0cxMAAABnZXREZXN0aW5hdGlvblZhbHVlcwwAAABhYnNvbHV0
+ZV91cmxzMgAAAC92aWV3P3NlbGVjdGlvbl9pbmRleD0lcyZzZWxlY3Rpb25fbmFtZT0lcyZyZXNl
+dD0xKAgAAABzCQAAAF9nZXRhdHRyX3MJAAAAc2VsZWN0aW9ucwUAAABpbmRleHMEAAAAbmFtZXMF
+AAAAYnJhaW5zBgAAAG9iamVjdHMEAAAATm9uZXMDAAAAdXJsKAgAAABzBQAAAGJyYWlucwkAAABz
+ZWxlY3Rpb25zCQAAAF9nZXRhdHRyX3MFAAAAaW5kZXhzBAAAAG5hbWVzBgAAAG9iamVjdHMEAAAA
+Tm9uZXMDAAAAdXJsKAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcyEAAABBY2NvdW50TW9k
+dWxlX2dldE1pcnJvckFjY291bnRVcmwBAAAAcw4AAAASARIBEgESAQ0BCgIgAigCAAAAcwQAAABO
+b25lcyEAAABBY2NvdW50TW9kdWxlX2dldE1pcnJvckFjY291bnRVcmwoAgAAAHMEAAAATm9uZXMh
+AAAAQWNjb3VudE1vZHVsZV9nZXRNaXJyb3JBY2NvdW50VXJsKAAAAAAoAAAAAHMPAAAAU2NyaXB0
+IChQeXRob24pcwgAAAA8bW9kdWxlPgEAAABzAAAAAA==</string> </value>
         </item>
         <item>
             <key> <string>_filepath</string> </key>
-            <value> <string>Script (Python):/nexedi/portal_skins/local_accounting/AccountModule_getMirrorAccountUrl</string> </value>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/AccountModule_getMirrorAccountUrl</string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statBalance.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statBalance.xml
index 656b84ea510a50e1bb38722fa70191ca4fea0f98..06b5993dd53aeb07c6b401ec27b3be21996f96ec 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statBalance.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statBalance.xml
@@ -94,7 +94,7 @@ except KeyError:\n
   pass\n
 \n
 # build the query with portal_catalog\n
-query = context.portal_catalog.buildSQLQuery(**kw)\n
+query = context.portal_catalog.buildSQLQuery(**kw) #query_table = \'node\', **kw)\n
 \n
 if query.get(\'where_expression\'):\n
   params[\'where_expression\'] = query[\'where_expression\']\n
@@ -108,6 +108,7 @@ if selection.getReport() :\n
 if kw.get(\'closed_summary\'):\n
   params[\'closed_summary\'] = kw[\'closed_summary\']\n
 if selection.isInvertMode() :\n
+  params[\'node_uid\'] = selection.getInvertModeUidList()\n
   params[\'selection_uids\'] = selection.getInvertModeUidList()\n
 \n
 if kw.get(\'omit_input\'):\n
@@ -123,13 +124,17 @@ if row.quantity :\n
   total = row.quantity or 0.00\n
 return total\n
 \n
-# vim: syntax=python\n
+# FIXME:\n
+# here we have to buildSQLQuery on \'node\' catalog table alias and not catalog.\n
+# currently this doesn\'t work.\n
+context.log(\'SQL:\', context.portal_simulation.getInventory( src__=1, omit_simulation=1, **params ))\n
+return context.portal_simulation.getInventory( omit_simulation=1, **params )\n
 </string> </value>
         </item>
         <item>
             <key> <string>_code</string> </key>
-            <value> <string encoding="base64">YwAAAAAAAAAAAwAAAEAAAABzEwAAAGUAAGUAAGQBAIQCAFoBAGQAAFMoAgAAAE5jAgAAABYAAAAz
-AAAASwAAAHNxAwAAdAAAfAIAZAEAgwIAdAAAfAEAZAIAgwIAgwAAgwEAAWgAAH0EAGQDAIQAAH0F
+            <value> <string encoding="base64">YwAAAAAAAAAAAwAAAEAAAABzEwAAAGUAAGUAAGQBAIQCAFoBAGQAAFMoAgAAAE5jAgAAABYAAAA7
+AAAASwAAAHPvAwAAdAAAfAIAZAEAgwIAdAAAfAEAZAIAgwIAgwAAgwEAAWgAAH0EAGQDAIQAAH0F
 AHQAAHQAAHQFAGQEAIMCAIMAAGQFAIMCAH0HAHQAAHwHAGQGAIMCAIMAAH0IAHwIAG8UAAF8CAB0
 CAB8BACDAQBkBwA8bgEAAXQAAHwHAGQIAIMCAIMAAH0KAHwKAG8UAAF8CgB0CAB8BACDAQBkCQA8
 bgEAAXQAAHwHAGQKAIMCAIMAAH0LAHwLAG8UAAF8CwB0CAB8BACDAQBkCwA8bgEAAXQAAHwHAGQM
@@ -140,44 +145,47 @@ fRIAdAAAfBIAZBQAgwIAZBUAgwEAbx0AAXQMAHwSAGQVAIMCAHQIAHwEAIMBAGQVADxuAQABdAAA
 fBIAZBQAgwIAZBYAgwEAbx0AAXQMAHwSAGQWAIMCAHQIAHwEAIMBAGQWADxuAQABdAAAfAEAZBcA
 gwIAgwAAbyAAAXQAAHwBAGQXAIMCAIMAAHQIAHwEAIMBAGQYADxuAQABdAAAfAEAZBkAgwIAgwAA
 byAAAXQAAHwBAGQZAIMCAIMAAHQIAHwEAIMBAGQaADxuAQABdAAAfAIAZBQAgwIAZBsAgwEAbx0A
-AXQMAHwCAGQbAIMCAHQIAHwEAIMBAGQbADxuAQABdAAAfAEAZBwAgwIAgwAAbyAAAXQAAHwBAGQd
-AIMCAIMAAHQIAHwEAIMBAGQeADxuAQABdAAAfAIAZBQAgwIAZB8AgwEAbxQAAWQgAHQIAHwEAIMB
-AGQfADxuAQABdAAAfAIAZBQAgwIAZCEAgwEAbxQAAWQgAHQIAHwEAIMBAGQhADxuAQABdBAAdAAA
-dAUAZCIAgwIAZCMAZCAAfAQAjQEBfRMAdAwAfBMAZCQAgwIAfRQAZCQAfRUAdAAAfBQAZCUAgwIA
-bxoAAXQAAHwUAGQlAIMCAHAEAAFkJgB9FQBuAQABfBUAU2QAAFMoJwAAAE5zBgAAAHVwZGF0ZXMJ
-AAAAZ2V0UGFyYW1zYwEAAAADAAAAAwAAAEMAAABzFgAAAHQAAHQBAGQBAIMCAGQCAHwAAIMCAFMo
-AwAAAE5zAwAAAGxvZ3MZAAAAQWNjb3VudE1vZHVsZV9zdGF0QmFsYW5jZSgDAAAAcwkAAABfZ2V0
-YXR0cl9zBwAAAGNvbnRleHRzBwAAAG1lc3NhZ2UoAwAAAHMHAAAAbWVzc2FnZXMJAAAAX2dldGF0
-dHJfcwcAAABjb250ZXh0KAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcwoAAAA8bGFtYmRh
-LjQ+AwAAAHMAAAAAcw8AAABnZXRQb3J0YWxPYmplY3RzEgAAAHBvcnRhbF9wcmVmZXJlbmNlc3Mp
-AAAAZ2V0UHJlZmVycmVkQWNjb3VudGluZ1RyYW5zYWN0aW9uRnJvbURhdGVzCQAAAGZyb21fZGF0
-ZXMnAAAAZ2V0UHJlZmVycmVkQWNjb3VudGluZ1RyYW5zYWN0aW9uQXREYXRlcwcAAABhdF9kYXRl
-czQAAABnZXRQcmVmZXJyZWRBY2NvdW50aW5nVHJhbnNhY3Rpb25TaW11bGF0aW9uU3RhdGVMaXN0
-cxAAAABzaW11bGF0aW9uX3N0YXRlczAAAABnZXRQcmVmZXJyZWRBY2NvdW50aW5nVHJhbnNhY3Rp
-b25TZWN0aW9uQ2F0ZWdvcnlzEAAAAHNlY3Rpb25fY2F0ZWdvcnlzJAAAAGFjY291bnRpbmdfdHJh
-bnNhY3Rpb25fbGluZV9jdXJyZW5jeXMSAAAAcmVzdHJpY3RlZFRyYXZlcnNlcwYAAABnZXRVaWRz
-DAAAAHJlc291cmNlX3VpZHMOAAAAcG9ydGFsX2NhdGFsb2dzDQAAAGJ1aWxkU1FMUXVlcnlzAwAA
-AGdldHMQAAAAd2hlcmVfZXhwcmVzc2lvbnMPAAAAZnJvbV90YWJsZV9saXN0cwkAAABnZXREb21h
-aW5zEAAAAHNlbGVjdGlvbl9kb21haW5zCQAAAGdldFJlcG9ydHMQAAAAc2VsZWN0aW9uX3JlcG9y
-dHMOAAAAY2xvc2VkX3N1bW1hcnlzDAAAAGlzSW52ZXJ0TW9kZXMUAAAAZ2V0SW52ZXJ0TW9kZVVp
-ZExpc3RzDgAAAHNlbGVjdGlvbl91aWRzcwoAAABvbWl0X2lucHV0aQEAAABzCwAAAG9taXRfb3V0
-cHV0cxcAAABSZXNvdXJjZV96U3RhdEludmVudG9yeXMPAAAAb21pdF9zaW11bGF0aW9uaQAAAABz
-CAAAAHF1YW50aXR5ZgMwLjAoFQAAAHMJAAAAX2dldGF0dHJfcwIAAABrd3MJAAAAc2VsZWN0aW9u
-cwYAAABwYXJhbXNzAwAAAExPR3MHAAAAY29udGV4dHMKAAAAcHJlZmVyZW5jZXMJAAAAZnJvbV9k
-YXRlcwcAAABfd3JpdGVfcwcAAABhdF9kYXRlcxAAAABzaW11bGF0aW9uX3N0YXRlcxAAAABzZWN0
-aW9uX2NhdGVnb3J5cwkAAABfZ2V0aXRlbV9zAwAAAHVybHMIAAAAY3VycmVuY3lzCAAAAEtleUVy
-cm9ycwcAAABfYXBwbHlfcwUAAABxdWVyeXMHAAAAcmVzdWx0c3MDAAAAcm93cwUAAAB0b3RhbCgW
-AAAAcwUAAABicmFpbnMJAAAAc2VsZWN0aW9ucwIAAABrd3MJAAAAX2dldGF0dHJfcwYAAABwYXJh
-bXNzAwAAAExPR3MHAAAAY29udGV4dHMKAAAAcHJlZmVyZW5jZXMJAAAAZnJvbV9kYXRlcwcAAABf
-d3JpdGVfcwcAAABhdF9kYXRlcxAAAABzaW11bGF0aW9uX3N0YXRlcxAAAABzZWN0aW9uX2NhdGVn
-b3J5cwkAAABfZ2V0aXRlbV9zAwAAAHVybHMIAAAAY3VycmVuY3lzCAAAAEtleUVycm9ycwcAAABf
-YXBwbHlfcwUAAABxdWVyeXMHAAAAcmVzdWx0c3MDAAAAcm93cwUAAAB0b3RhbCgAAAAAKAAAAABz
-DwAAAFNjcmlwdCAoUHl0aG9uKXMZAAAAQWNjb3VudE1vZHVsZV9zdGF0QmFsYW5jZQEAAABzXAAA
-AB8BBgEJAxsBEgEHARQBEgEHARQBEgEHARQBEgEHARQCAwEPAQcBFQEnAQ4BBQMkAhMBIAETASAC
-EAEjARABIwETASABEAEjAhMBFwETARQCFQEJAQ8BCQENARoBKAIAAABzBAAAAE5vbmVzGQAAAEFj
-Y291bnRNb2R1bGVfc3RhdEJhbGFuY2UoAgAAAHMEAAAATm9uZXMZAAAAQWNjb3VudE1vZHVsZV9z
-dGF0QmFsYW5jZSgAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAA
-cwAAAAA=</string> </value>
+AXQMAHwCAGQbAIMCAHQIAHwEAIMBAGQbADxuAQABdAAAfAEAZBwAgwIAgwAAbzwAAXQAAHwBAGQd
+AIMCAIMAAHQIAHwEAIMBAGQeADx0AAB8AQBkHQCDAgCDAAB0CAB8BACDAQBkHwA8bgEAAXQAAHwC
+AGQUAIMCAGQgAIMBAG8UAAFkIQB0CAB8BACDAQBkIAA8bgEAAXQAAHwCAGQUAIMCAGQiAIMBAG8U
+AAFkIQB0CAB8BACDAQBkIgA8bgEAAXQQAHQAAHQFAGQjAIMCAGQkAGQhAHwEAI0BAX0TAHQMAHwT
+AGQlAIMCAH0UAGQlAH0VAHQAAHwUAGQmAIMCAG8aAAF0AAB8FABkJgCDAgBwBAABZCcAfRUAbgEA
+AXwVAFN0AAB0BQBkKACDAgBkKQB0EAB0AAB0AAB0BQBkKgCDAgBkKwCDAgBkLABkIQBkJABkIQB8
+BACNAQKDAgABdBAAdAAAdAAAdAUAZCoAgwIAZCsAgwIAZCQAZCEAfAQAjQEBU2QAAFMoLQAAAE5z
+BgAAAHVwZGF0ZXMJAAAAZ2V0UGFyYW1zYwEAAAADAAAAAwAAAEMAAABzFgAAAHQAAHQBAGQBAIMC
+AGQCAHwAAIMCAFMoAwAAAE5zAwAAAGxvZ3MZAAAAQWNjb3VudE1vZHVsZV9zdGF0QmFsYW5jZSgD
+AAAAcwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzBwAAAG1lc3NhZ2UoAwAAAHMHAAAAbWVzc2Fn
+ZXMJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0KAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24p
+cwoAAAA8bGFtYmRhLjc+AwAAAHMAAAAAcw8AAABnZXRQb3J0YWxPYmplY3RzEgAAAHBvcnRhbF9w
+cmVmZXJlbmNlc3MpAAAAZ2V0UHJlZmVycmVkQWNjb3VudGluZ1RyYW5zYWN0aW9uRnJvbURhdGVz
+CQAAAGZyb21fZGF0ZXMnAAAAZ2V0UHJlZmVycmVkQWNjb3VudGluZ1RyYW5zYWN0aW9uQXREYXRl
+cwcAAABhdF9kYXRlczQAAABnZXRQcmVmZXJyZWRBY2NvdW50aW5nVHJhbnNhY3Rpb25TaW11bGF0
+aW9uU3RhdGVMaXN0cxAAAABzaW11bGF0aW9uX3N0YXRlczAAAABnZXRQcmVmZXJyZWRBY2NvdW50
+aW5nVHJhbnNhY3Rpb25TZWN0aW9uQ2F0ZWdvcnlzEAAAAHNlY3Rpb25fY2F0ZWdvcnlzJAAAAGFj
+Y291bnRpbmdfdHJhbnNhY3Rpb25fbGluZV9jdXJyZW5jeXMSAAAAcmVzdHJpY3RlZFRyYXZlcnNl
+cwYAAABnZXRVaWRzDAAAAHJlc291cmNlX3VpZHMOAAAAcG9ydGFsX2NhdGFsb2dzDQAAAGJ1aWxk
+U1FMUXVlcnlzAwAAAGdldHMQAAAAd2hlcmVfZXhwcmVzc2lvbnMPAAAAZnJvbV90YWJsZV9saXN0
+cwkAAABnZXREb21haW5zEAAAAHNlbGVjdGlvbl9kb21haW5zCQAAAGdldFJlcG9ydHMQAAAAc2Vs
+ZWN0aW9uX3JlcG9ydHMOAAAAY2xvc2VkX3N1bW1hcnlzDAAAAGlzSW52ZXJ0TW9kZXMUAAAAZ2V0
+SW52ZXJ0TW9kZVVpZExpc3RzCAAAAG5vZGVfdWlkcw4AAABzZWxlY3Rpb25fdWlkc3MKAAAAb21p
+dF9pbnB1dGkBAAAAcwsAAABvbWl0X291dHB1dHMXAAAAUmVzb3VyY2VfelN0YXRJbnZlbnRvcnlz
+DwAAAG9taXRfc2ltdWxhdGlvbmkAAAAAcwgAAABxdWFudGl0eWYDMC4wcwMAAABsb2dzBAAAAFNR
+TDpzEQAAAHBvcnRhbF9zaW11bGF0aW9ucwwAAABnZXRJbnZlbnRvcnlzBQAAAHNyY19fKBUAAABz
+CQAAAF9nZXRhdHRyX3MCAAAAa3dzCQAAAHNlbGVjdGlvbnMGAAAAcGFyYW1zcwMAAABMT0dzBwAA
+AGNvbnRleHRzCgAAAHByZWZlcmVuY2VzCQAAAGZyb21fZGF0ZXMHAAAAX3dyaXRlX3MHAAAAYXRf
+ZGF0ZXMQAAAAc2ltdWxhdGlvbl9zdGF0ZXMQAAAAc2VjdGlvbl9jYXRlZ29yeXMJAAAAX2dldGl0
+ZW1fcwMAAAB1cmxzCAAAAGN1cnJlbmN5cwgAAABLZXlFcnJvcnMHAAAAX2FwcGx5X3MFAAAAcXVl
+cnlzBwAAAHJlc3VsdHNzAwAAAHJvd3MFAAAAdG90YWwoFgAAAHMFAAAAYnJhaW5zCQAAAHNlbGVj
+dGlvbnMCAAAAa3dzCQAAAF9nZXRhdHRyX3MGAAAAcGFyYW1zcwMAAABMT0dzBwAAAGNvbnRleHRz
+CgAAAHByZWZlcmVuY2VzCQAAAGZyb21fZGF0ZXMHAAAAX3dyaXRlX3MHAAAAYXRfZGF0ZXMQAAAA
+c2ltdWxhdGlvbl9zdGF0ZXMQAAAAc2VjdGlvbl9jYXRlZ29yeXMJAAAAX2dldGl0ZW1fcwMAAAB1
+cmxzCAAAAGN1cnJlbmN5cwgAAABLZXlFcnJvcnMHAAAAX2FwcGx5X3MFAAAAcXVlcnlzBwAAAHJl
+c3VsdHNzAwAAAHJvd3MFAAAAdG90YWwoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzGQAA
+AEFjY291bnRNb2R1bGVfc3RhdEJhbGFuY2UBAAAAc2IAAAAfAQYBCQMbARIBBwEUARIBBwEUARIB
+BwEUARIBBwEUAgMBDwEHARUBJwEOAQUDJAITASABEwEgAhABIwEQASMBEwEgARABHAEjAhMBFwET
+ARQCFQEJAQ8BCQENARoBBwU6ASgCAAAAcwQAAABOb25lcxkAAABBY2NvdW50TW9kdWxlX3N0YXRC
+YWxhbmNlKAIAAABzBAAAAE5vbmVzGQAAAEFjY291bnRNb2R1bGVfc3RhdEJhbGFuY2UoAAAAACgA
+AAAAcw8AAABTY3JpcHQgKFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
         </item>
         <item>
             <key> <string>_dav_writelocks</string> </key>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statTotalSourceCredit.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statTotalSourceCredit.xml
index 7d589e0a63be9d095850fe5498c914ebb21129c4..f815ffe05227d6803f358c3cbbc1c8a2d9c608a4 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statTotalSourceCredit.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statTotalSourceCredit.xml
@@ -66,25 +66,25 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>return - context.AccountModule_statBalance(brain, selection, omit_output=1, **kw)\n
+            <value> <string>return - context.AccountModule_statBalance(brain, selection, omit_input=1, **kw) or 0\n
 </string> </value>
         </item>
         <item>
             <key> <string>_code</string> </key>
             <value> <string encoding="base64">YwAAAAAAAAAAAgAAAEAAAABzEAAAAGUAAGQBAIQBAFoBAGQAAFMoAgAAAE5jAgAAAAYAAAAIAAAA
-SwAAAHMnAAAAdAAAdAEAdAIAZAEAgwIAfAEAfAAAZAIAZAMAfAIAjQMBC1NkAABTKAQAAABOcxkA
-AABBY2NvdW50TW9kdWxlX3N0YXRCYWxhbmNlcwsAAABvbWl0X291dHB1dGkBAAAAKAYAAABzBwAA
-AF9hcHBseV9zCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMFAAAAYnJhaW5zCQAAAHNlbGVjdGlv
-bnMCAAAAa3coBgAAAHMJAAAAc2VsZWN0aW9ucwUAAABicmFpbnMCAAAAa3dzBwAAAF9hcHBseV9z
-CQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dCgAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMj
-AAAAQWNjb3VudE1vZHVsZV9zdGF0VG90YWxTb3VyY2VDcmVkaXQBAAAAcwAAAAAoAgAAAHMEAAAA
-Tm9uZXMjAAAAQWNjb3VudE1vZHVsZV9zdGF0VG90YWxTb3VyY2VDcmVkaXQoAgAAAHMEAAAATm9u
-ZXMjAAAAQWNjb3VudE1vZHVsZV9zdGF0VG90YWxTb3VyY2VDcmVkaXQoAAAAACgAAAAAcw8AAABT
-Y3JpcHQgKFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
+SwAAAHMuAAAAdAAAdAEAdAIAZAEAgwIAfAEAfAAAZAIAZAMAfAIAjQMBC3AEAAFkBABTZAAAUygF
+AAAATnMZAAAAQWNjb3VudE1vZHVsZV9zdGF0QmFsYW5jZXMKAAAAb21pdF9pbnB1dGkBAAAAaQAA
+AAAoBgAAAHMHAAAAX2FwcGx5X3MJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0cwUAAABicmFpbnMJ
+AAAAc2VsZWN0aW9ucwIAAABrdygGAAAAcwkAAABzZWxlY3Rpb25zBQAAAGJyYWlucwIAAABrd3MH
+AAAAX2FwcGx5X3MJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0KAAAAAAoAAAAAHMPAAAAU2NyaXB0
+IChQeXRob24pcyMAAABBY2NvdW50TW9kdWxlX3N0YXRUb3RhbFNvdXJjZUNyZWRpdAEAAABzAAAA
+ACgCAAAAcwQAAABOb25lcyMAAABBY2NvdW50TW9kdWxlX3N0YXRUb3RhbFNvdXJjZUNyZWRpdCgC
+AAAAcwQAAABOb25lcyMAAABBY2NvdW50TW9kdWxlX3N0YXRUb3RhbFNvdXJjZUNyZWRpdCgAAAAA
+KAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAAcwAAAAA=</string> </value>
         </item>
         <item>
             <key> <string>_filepath</string> </key>
-            <value> <string>Script (Python):/nexedi/portal_skins/local_accounting/AccountModule_statTotalSourceCredit</string> </value>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/AccountModule_statTotalSourceCredit</string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statTotalSourceDebit.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statTotalSourceDebit.xml
index 25fb77e20c855c7e87b03cbf12b28a3c3f66bb65..fe8a592226874c88b51a9e9d982a4573d2c4333b 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statTotalSourceDebit.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statTotalSourceDebit.xml
@@ -66,21 +66,21 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>return context.AccountModule_statBalance(brain, selection, omit_input=1, float_value=1, **kw)\n
+            <value> <string>return context.AccountModule_statBalance(brain, selection, omit_output=1, float_value=1, **kw)\n
 </string> </value>
         </item>
         <item>
             <key> <string>_code</string> </key>
             <value> <string encoding="base64">YwAAAAAAAAAAAgAAAEAAAABzEAAAAGUAAGQBAIQBAFoBAGQAAFMoAgAAAE5jAgAAAAYAAAAKAAAA
 SwAAAHMsAAAAdAAAdAEAdAIAZAEAgwIAfAEAfAAAZAIAZAMAZAQAZAMAfAIAjQMCU2QAAFMoBQAA
-AE5zGQAAAEFjY291bnRNb2R1bGVfc3RhdEJhbGFuY2VzCgAAAG9taXRfaW5wdXRpAQAAAHMLAAAA
-ZmxvYXRfdmFsdWUoBgAAAHMHAAAAX2FwcGx5X3MJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0cwUA
-AABicmFpbnMJAAAAc2VsZWN0aW9ucwIAAABrdygGAAAAcwkAAABzZWxlY3Rpb25zBQAAAGJyYWlu
-cwIAAABrd3MHAAAAX2FwcGx5X3MJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0KAAAAAAoAAAAAHMP
-AAAAU2NyaXB0IChQeXRob24pcyIAAABBY2NvdW50TW9kdWxlX3N0YXRUb3RhbFNvdXJjZURlYml0
-AQAAAHMAAAAAKAIAAABzBAAAAE5vbmVzIgAAAEFjY291bnRNb2R1bGVfc3RhdFRvdGFsU291cmNl
-RGViaXQoAgAAAHMEAAAATm9uZXMiAAAAQWNjb3VudE1vZHVsZV9zdGF0VG90YWxTb3VyY2VEZWJp
-dCgAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAAcwAAAAA=</string> </value>
+AE5zGQAAAEFjY291bnRNb2R1bGVfc3RhdEJhbGFuY2VzCwAAAG9taXRfb3V0cHV0aQEAAABzCwAA
+AGZsb2F0X3ZhbHVlKAYAAABzBwAAAF9hcHBseV9zCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMF
+AAAAYnJhaW5zCQAAAHNlbGVjdGlvbnMCAAAAa3coBgAAAHMJAAAAc2VsZWN0aW9ucwUAAABicmFp
+bnMCAAAAa3dzBwAAAF9hcHBseV9zCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dCgAAAAAKAAAAABz
+DwAAAFNjcmlwdCAoUHl0aG9uKXMiAAAAQWNjb3VudE1vZHVsZV9zdGF0VG90YWxTb3VyY2VEZWJp
+dAEAAABzAAAAACgCAAAAcwQAAABOb25lcyIAAABBY2NvdW50TW9kdWxlX3N0YXRUb3RhbFNvdXJj
+ZURlYml0KAIAAABzBAAAAE5vbmVzIgAAAEFjY291bnRNb2R1bGVfc3RhdFRvdGFsU291cmNlRGVi
+aXQoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
         </item>
         <item>
             <key> <string>_dav_writelocks</string> </key>
@@ -90,7 +90,7 @@ dCgAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAAcwAAAAA=</string
         </item>
         <item>
             <key> <string>_filepath</string> </key>
-            <value> <string>Script (Python):/nexedi/portal_skins/local_accounting/AccountModule_statTotalSourceDebit</string> </value>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/AccountModule_statTotalSourceDebit</string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_viewAccountList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_viewAccountList.xml
index ae5ed5a6f3685363ce9cd2a9756482b53f56c01e..739ef3f8cdae39faa2235aeeda871d9667b441d8 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_viewAccountList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_viewAccountList.xml
@@ -65,7 +65,6 @@
                 <string>right</string>
                 <string>center</string>
                 <string>bottom</string>
-                <string>hidden</string>
               </list>
             </value>
         </item>
@@ -85,14 +84,6 @@
                       <list/>
                     </value>
                 </item>
-                <item>
-                    <key>                 <string>hidden</string> </key>
-                    <value>
-                      <list>
-                        <string>listbox_preferred_gap_id</string>
-                      </list>
-                    </value>
-                </item>
                 <item>
                     <key> <string>left</string> </key>
                     <value>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_viewAccountStatementReport.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_viewAccountStatementReport.xml
new file mode 100755
index 0000000000000000000000000000000000000000..16bda318b8a54ff3c04feb9115860683dce2658c
--- /dev/null
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_viewAccountStatementReport.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.ERP5Form.Report</string>
+          <string>ERP5Report</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>Default</string>
+                <string>2</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key>                 <string>2</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>Default</string> </key>
+                    <value>
+                      <list>
+                        <string>from_date</string>
+                        <string>at_date</string>
+                        <string>transaction_section_category</string>
+                        <string>transaction_simulation_state</string>
+                        <string>account</string>
+                        <string>destination_section</string>
+                        <string>source_payment</string>
+                        <string>omit_grouping_reference</string>
+                      </list>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>AccountModule_viewAccountStatementReport</string> </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string>AccountModule_viewAccountStatementReport</string> </value>
+        </item>
+        <item>
+            <key> <string>pt</string> </key>
+            <value> <string>report_view</string> </value>
+        </item>
+        <item>
+            <key> <string>report_method</string> </key>
+            <value> <string>AccountModule_getAccountStatementReportSectionList</string> </value>
+        </item>
+        <item>
+            <key> <string>row_length</string> </key>
+            <value> <int>4</int> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Account Statement</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>update_action</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_viewAccountStatementReportDialog.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_viewAccountStatementReportDialog.xml
new file mode 100755
index 0000000000000000000000000000000000000000..35dbb4f5f1c3def21037d6cad5ed7b92d023789d
--- /dev/null
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_viewAccountStatementReportDialog.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.ERP5Form.Form</string>
+          <string>ERP5Form</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string>AccountModule_viewAccountStatementReport</string> </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>Default</string>
+                <string>left</string>
+                <string>bottom</string>
+                <string>diabled</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>Default</string> </key>
+                    <value>
+                      <list>
+                        <string>my_transaction_section_category</string>
+                        <string>my_from_date</string>
+                        <string>my_at_date</string>
+                        <string>my_portal_skin</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>bottom</string> </key>
+                    <value>
+                      <list>
+                        <string>my_account</string>
+                        <string>my_destination_section</string>
+                        <string>my_source_payment</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>diabled</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left</string> </key>
+                    <value>
+                      <list>
+                        <string>my_transaction_simulation_state</string>
+                      </list>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>AccountModule_viewAccountStatementReportDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string>AccountModule_viewGeneralLedgerReportDialog</string> </value>
+        </item>
+        <item>
+            <key> <string>pt</string> </key>
+            <value> <string>form_dialog</string> </value>
+        </item>
+        <item>
+            <key> <string>row_length</string> </key>
+            <value> <int>4</int> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Account Statement</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>update_action</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getDestinationSectionItemList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getDestinationSectionItemList.xml
new file mode 100755
index 0000000000000000000000000000000000000000..4a65999617fad3ca6a0dc4c880e9da0f4ecef674
--- /dev/null
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getDestinationSectionItemList.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.PythonScripts.PythonScript</string>
+          <string>PythonScript</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Python_magic</string> </key>
+            <value> <string encoding="base64">O/INCg==</string> </value>
+        </item>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>account = None\n
+if account == \'\' : \n
+  if (hasattr(context, \'getPortalType\') and context.getPortalType() == \'Account\') :\n
+    account = context\n
+elif same_type(account, \'\') : \n
+  account = context.getPortalObject().restrictedTraverse(account)\n
+\n
+node_uid = None\n
+if account is not None :  \n
+  node_uid = account.getUid()\n
+\n
+ptype_translated_dict = {}\n
+def translatePortalType(ptype) : \n
+   if not ptype_translated_dict.has_key(ptype) : \n
+     ptype_translated_dict[ptype] = context.Base_TranslateString(ptype)\n
+   return ptype_translated_dict[ptype]\n
+\n
+item_list = [("", "")]\n
+for entity in context.Account_zDistinctSectionList(node_uid = node_uid): \n
+  item_list.append(("%s (%s)" % (entity[\'title\'], translatePortalType(entity[\'portal_type\'])), entity[\'relative_url\']))\n
+\n
+return item_list\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value> <string encoding="base64">YwAAAAAAAAAAAgAAAEAAAABzEAAAAGQBAGQCAIQBAFoAAGQAAFMoAwAAAE5zAAAAAGMBAAAADQAA
+ABMAAAADAAAAcz4BAAB0AAB9AAB8AABkAQBqAgBvNwABdAIAdAMAZAIAgwIAbxYAAXQEAHQDAGQC
+AIMCAIMAAGQDAGoCAG8KAAF0AwB9AABxfwABbjYAAXQFAHwAAGQBAIMCAG8lAAF0BAB0BAB0AwBk
+BACDAgCDAABkBQCDAgB8AACDAQB9AABuAQABdAAAfQYAfAAAdAAAagkAbxYAAXQEAHwAAGQGAIMC
+AIMAAH0GAG4BAAFoAACJAACHAABkBwCGAAB9CABkAQBkAQBmAgBnAQB9CQB4agB0CgB0BAB0AwBk
+CACDAgBkCQB8BgCDAAGDAQBEXUoAfQsAdAQAfAkAZAoAgwIAZAsAdAwAfAsAZAwAgwIAfAgAdAwA
+fAsAZA0AgwIAgwEAZgIAFnQMAHwLAGQOAIMCAGYCAIMBAAFx6ABXfAkAU2QAAFMoDwAAAE5zAAAA
+AHMNAAAAZ2V0UG9ydGFsVHlwZXMHAAAAQWNjb3VudHMPAAAAZ2V0UG9ydGFsT2JqZWN0cxIAAABy
+ZXN0cmljdGVkVHJhdmVyc2VzBgAAAGdldFVpZGMBAAAABgAAAAcAAAADAAAAc0sAAAB0AACIAABk
+AQCDAgB8AACDAQAMbyMAAXQAAHQDAGQCAIMCAHwAAIMBAHQEAIgAAIMBAHwAADxuAQABdAUAiAAA
+fAAAgwIAU2QAAFMoAwAAAE5zBwAAAGhhc19rZXlzFAAAAEJhc2VfVHJhbnNsYXRlU3RyaW5nKAYA
+AABzCQAAAF9nZXRhdHRyX3MVAAAAcHR5cGVfdHJhbnNsYXRlZF9kaWN0cwUAAABwdHlwZXMHAAAA
+Y29udGV4dHMHAAAAX3dyaXRlX3MJAAAAX2dldGl0ZW1fKAYAAABzBQAAAHB0eXBlcwkAAABfZ2V0
+YXR0cl9zFQAAAHB0eXBlX3RyYW5zbGF0ZWRfZGljdHMHAAAAY29udGV4dHMHAAAAX3dyaXRlX3MJ
+AAAAX2dldGl0ZW1fKAEAAABzFQAAAHB0eXBlX3RyYW5zbGF0ZWRfZGljdCgAAAAAcw8AAABTY3Jp
+cHQgKFB5dGhvbilzEwAAAHRyYW5zbGF0ZVBvcnRhbFR5cGUNAAAAcwYAAAAAARcBIwFzHAAAAEFj
+Y291bnRfekRpc3RpbmN0U2VjdGlvbkxpc3RzCAAAAG5vZGVfdWlkcwYAAABhcHBlbmRzBwAAACVz
+ICglcylzBQAAAHRpdGxlcwsAAABwb3J0YWxfdHlwZXMMAAAAcmVsYXRpdmVfdXJsKA0AAABzBAAA
+AE5vbmVzBwAAAGFjY291bnRzBwAAAGhhc2F0dHJzBwAAAGNvbnRleHRzCQAAAF9nZXRhdHRyX3MJ
+AAAAc2FtZV90eXBlcwgAAABub2RlX3VpZHMVAAAAcHR5cGVfdHJhbnNsYXRlZF9kaWN0cxMAAAB0
+cmFuc2xhdGVQb3J0YWxUeXBlcwkAAABpdGVtX2xpc3RzCQAAAF9nZXRpdGVyX3MGAAAAZW50aXR5
+cwkAAABfZ2V0aXRlbV8oDQAAAHMHAAAAYWNjb3VudHMEAAAATm9uZXMHAAAAaGFzYXR0cnMHAAAA
+Y29udGV4dHMJAAAAX2dldGF0dHJfcwkAAABzYW1lX3R5cGVzCAAAAG5vZGVfdWlkcxUAAABwdHlw
+ZV90cmFuc2xhdGVkX2RpY3RzEwAAAHRyYW5zbGF0ZVBvcnRhbFR5cGVzCQAAAGl0ZW1fbGlzdHMJ
+AAAAX2dldGl0ZXJfcwYAAABlbnRpdHlzCQAAAF9nZXRpdGVtXygAAAAAKAEAAABzFQAAAHB0eXBl
+X3RyYW5zbGF0ZWRfZGljdHMPAAAAU2NyaXB0IChQeXRob24pcyUAAABBY2NvdW50X2dldERlc3Rp
+bmF0aW9uU2VjdGlvbkl0ZW1MaXN0AQAAAHMeAAAABgENASkBDgEQASUCBgENARYCBgEMBQ8BHwAJ
+AUUCKAEAAABzJQAAAEFjY291bnRfZ2V0RGVzdGluYXRpb25TZWN0aW9uSXRlbUxpc3QoAQAAAHMl
+AAAAQWNjb3VudF9nZXREZXN0aW5hdGlvblNlY3Rpb25JdGVtTGlzdCgAAAAAKAAAAABzDwAAAFNj
+cmlwdCAoUHl0aG9uKXMIAAAAPG1vZHVsZT4BAAAAcwAAAAA=</string> </value>
+        </item>
+        <item>
+            <key> <string>_filepath</string> </key>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/Account_getDestinationSectionItemList</string> </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>account = \'\'</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>1</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>account</string>
+                            <string>None</string>
+                            <string>hasattr</string>
+                            <string>context</string>
+                            <string>_getattr_</string>
+                            <string>same_type</string>
+                            <string>node_uid</string>
+                            <string>ptype_translated_dict</string>
+                            <string>translatePortalType</string>
+                            <string>item_list</string>
+                            <string>_getiter_</string>
+                            <string>entity</string>
+                            <string>_getitem_</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <tuple>
+                <string></string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Account_getDestinationSectionItemList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getDestinationSectionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getDestinationSectionList.xml
new file mode 100755
index 0000000000000000000000000000000000000000..ccf4460b7f4402cf6e9b771ec3ed7cec6ff4b57f
--- /dev/null
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getDestinationSectionList.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.PythonScripts.PythonScript</string>
+          <string>PythonScript</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Python_magic</string> </key>
+            <value> <string encoding="base64">O/INCg==</string> </value>
+        </item>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>account = context\n
+destination_section_set = {}\n
+\n
+for line in account.Account_getAccountingTransactionList(**kw) :\n
+   movement_path = line.current_transaction_line_path\n
+   movement = context.restrictedTraverse(movement_path)\n
+   destination_section_set[movement.getDestinationSection()] = 1 \n
+\n
+return destination_section_set.keys()\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAAsAAAAKAAAASwAA
+AHOJAAAAdAAAfQIAaAAAfQMAeGYAdAMAdAQAdAUAfAIAZAEAgwIAfAAAjQEAgwEARF1GAH0HAHQF
+AHwHAGQCAIMCAH0IAHQFAHQAAGQDAIMCAHwIAIMBAH0JAGQEAHQKAHwDAIMBAHQFAHwJAGQFAIMC
+AIMAADxxKwBXdAUAfAMAZAYAgwIAgwAAU2QAAFMoBwAAAE5zJAAAAEFjY291bnRfZ2V0QWNjb3Vu
+dGluZ1RyYW5zYWN0aW9uTGlzdHMdAAAAY3VycmVudF90cmFuc2FjdGlvbl9saW5lX3BhdGhzEgAA
+AHJlc3RyaWN0ZWRUcmF2ZXJzZWkBAAAAcxUAAABnZXREZXN0aW5hdGlvblNlY3Rpb25zBAAAAGtl
+eXMoCwAAAHMHAAAAY29udGV4dHMHAAAAYWNjb3VudHMXAAAAZGVzdGluYXRpb25fc2VjdGlvbl9z
+ZXRzCQAAAF9nZXRpdGVyX3MHAAAAX2FwcGx5X3MJAAAAX2dldGF0dHJfcwIAAABrd3MEAAAAbGlu
+ZXMNAAAAbW92ZW1lbnRfcGF0aHMIAAAAbW92ZW1lbnRzBwAAAF93cml0ZV8oCwAAAHMCAAAAa3dz
+BwAAAGNvbnRleHRzBwAAAGFjY291bnRzFwAAAGRlc3RpbmF0aW9uX3NlY3Rpb25fc2V0cwkAAABf
+Z2V0aXRlcl9zBwAAAF9hcHBseV9zCQAAAF9nZXRhdHRyX3MEAAAAbGluZXMNAAAAbW92ZW1lbnRf
+cGF0aHMIAAAAbW92ZW1lbnRzBwAAAF93cml0ZV8oAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhv
+bilzIQAAAEFjY291bnRfZ2V0RGVzdGluYXRpb25TZWN0aW9uTGlzdAEAAABzDgAAAAYBBgIfAAYB
+DwEVASACKAEAAABzIQAAAEFjY291bnRfZ2V0RGVzdGluYXRpb25TZWN0aW9uTGlzdCgBAAAAcyEA
+AABBY2NvdW50X2dldERlc3RpbmF0aW9uU2VjdGlvbkxpc3QoAAAAACgAAAAAcw8AAABTY3JpcHQg
+KFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
+        </item>
+        <item>
+            <key> <string>_filepath</string> </key>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/Account_getDestinationSectionList</string> </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>**kw</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>0</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>kw</string>
+                            <string>context</string>
+                            <string>account</string>
+                            <string>destination_section_set</string>
+                            <string>_getiter_</string>
+                            <string>_apply_</string>
+                            <string>_getattr_</string>
+                            <string>line</string>
+                            <string>movement_path</string>
+                            <string>movement</string>
+                            <string>_write_</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Account_getDestinationSectionList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getGapId.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getGapId.xml
index eb5d606ba847ad4a894ed8d1802373e6c2685066..14953e52f1f3feba1099b9493e890caa48f4734c 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getGapId.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getGapId.xml
@@ -73,26 +73,27 @@ current_gap = context.getPortalObject().portal_preferences.getPreferredAccountin
 for gap in context.getGapValueList() : \n
   if current_gap in gap.getPath() : \n
      return gap.getId()\n
+return \'\'\n
 </string> </value>
         </item>
         <item>
             <key> <string>_code</string> </key>
             <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAAUAAAALAAAAQwAA
-AHN7AAAAdAAAdAAAdAAAdAEAZAEAgwIAgwAAZAIAgwIAZAMAgwIAgwAAfQIAeE0AdAMAdAAAdAEA
+AHN/AAAAdAAAdAAAdAAAdAEAZAEAgwIAgwAAZAIAgwIAZAMAgwIAgwAAfQIAeE0AdAMAdAAAdAEA
 ZAQAgwIAgwAAgwEARF0zAH0EAHwCAHQAAHwEAGQFAIMCAIMAAGoGAG8UAAF0AAB8BABkBgCDAgCD
-AABTcUAAAXFAAFdkAABTKAcAAABOcw8AAABnZXRQb3J0YWxPYmplY3RzEgAAAHBvcnRhbF9wcmVm
-ZXJlbmNlc3MkAAAAZ2V0UHJlZmVycmVkQWNjb3VudGluZ1RyYW5zYWN0aW9uR2Fwcw8AAABnZXRH
-YXBWYWx1ZUxpc3RzBwAAAGdldFBhdGhzBQAAAGdldElkKAUAAABzCQAAAF9nZXRhdHRyX3MHAAAA
-Y29udGV4dHMLAAAAY3VycmVudF9nYXBzCQAAAF9nZXRpdGVyX3MDAAAAZ2FwKAUAAABzCQAAAF9n
-ZXRhdHRyX3MHAAAAY29udGV4dHMLAAAAY3VycmVudF9nYXBzCQAAAF9nZXRpdGVyX3MDAAAAZ2Fw
-KAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcxAAAABBY2NvdW50X2dldEdhcElkAQAAAHMK
-AAAAAAInAhkABgEZASgBAAAAcxAAAABBY2NvdW50X2dldEdhcElkKAEAAABzEAAAAEFjY291bnRf
-Z2V0R2FwSWQoAAAAACgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMA
-AAAA</string> </value>
+AABTcUAAAXFAAFdkBwBTZAAAUygIAAAATnMPAAAAZ2V0UG9ydGFsT2JqZWN0cxIAAABwb3J0YWxf
+cHJlZmVyZW5jZXNzJAAAAGdldFByZWZlcnJlZEFjY291bnRpbmdUcmFuc2FjdGlvbkdhcHMPAAAA
+Z2V0R2FwVmFsdWVMaXN0cwcAAABnZXRQYXRocwUAAABnZXRJZHMAAAAAKAUAAABzCQAAAF9nZXRh
+dHRyX3MHAAAAY29udGV4dHMLAAAAY3VycmVudF9nYXBzCQAAAF9nZXRpdGVyX3MDAAAAZ2FwKAUA
+AABzCQAAAF9nZXRhdHRyX3MHAAAAY29udGV4dHMLAAAAY3VycmVudF9nYXBzCQAAAF9nZXRpdGVy
+X3MDAAAAZ2FwKAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcxAAAABBY2NvdW50X2dldEdh
+cElkAQAAAHMMAAAAAAInAhkABgEZARgBKAEAAABzEAAAAEFjY291bnRfZ2V0R2FwSWQoAQAAAHMQ
+AAAAQWNjb3VudF9nZXRHYXBJZCgAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMIAAAAPG1v
+ZHVsZT4BAAAAcwAAAAA=</string> </value>
         </item>
         <item>
             <key> <string>_filepath</string> </key>
-            <value> <string>Script (Python):/nexedi/erp5_accounting/Account_getGapId</string> </value>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/Account_getGapId</string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getGapItemList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getGapItemList.xml
index 2d6aafafff0be34b811e31f1545df0bbadc268a9..2ea314865db54de7b602a48fee8fc178d5d32e17 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getGapItemList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getGapItemList.xml
@@ -77,34 +77,50 @@ try :\n
 except KeyError :\n
   raise\n
   gap_root = context.getPortalDefaultGapRoot()\n
-obj = context.portal_categories.resolveCategory(gap_root)\n
-return  obj.getCategoryChildItemList(base=0, display_method=display, sort_method=sort)\n
+\n
+def getGapItemList(gap_root, portal_path) : \n
+  obj = context.portal_categories.resolveCategory(gap_root)\n
+  return  obj.getCategoryChildItemList(base=0, display_method=display, sort_method=sort)\n
+\n
+from Products.ERP5Type.Cache import CachingMethod\n
+getGapItemList = CachingMethod(getGapItemList, id=\'Account.getGapItemList\')\n
+return getGapItemList(gap_root=gap_root, portal_path=context.portal_url())\n
 </string> </value>
         </item>
         <item>
             <key> <string>_code</string> </key>
-            <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAAcAAAAPAAAAAwAA
-AHOjAAAAZAEAhAAAiQAAhwAAZAIAhgAAfQEAeR8AdAIAdAIAdAMAZAMAgwIAZAQAgwIAgwAAfQQA
-V24oAAR0BQBqCgBvHAABAQEBggAAdAIAdAMAZAUAgwIAgwAAfQQAbgIAAVh0AgB0AgB0AwBkBgCD
-AgBkBwCDAgB8BACDAQB9BgB0AgB8BgBkCACDAgBkCQBkCgBkCwCIAABkDAB8AQCDAANTZAAAUygN
-AAAATmMBAAAAAgAAAAYAAABDAAAAcyoAAABkAQB0AAB8AABkAgCDAgCDAAB0AAB8AABkAwCDAgCD
-AABmAgAWU2QAAFMoBAAAAE5zBwAAACVzIC0gJXNzBQAAAGdldElkcwgAAABnZXRUaXRsZSgCAAAA
-cwkAAABfZ2V0YXR0cl9zAQAAAHgoAgAAAHMBAAAAeHMJAAAAX2dldGF0dHJfKAAAAAAoAAAAAHMP
-AAAAU2NyaXB0IChQeXRob24pcwcAAABkaXNwbGF5AQAAAHMCAAAAAAFjAgAAAAQAAAAFAAAAAwAA
-AHMdAAAAdAAAiAAAfAAAgwEAiAAAfAEAgwEAgwIAU2QAAFMoAQAAAE4oBAAAAHMDAAAAY21wcwcA
-AABkaXNwbGF5cwEAAAB4cwEAAAB5KAQAAABzAQAAAHhzAQAAAHlzAwAAAGNtcHMHAAAAZGlzcGxh
-eSgBAAAAcwcAAABkaXNwbGF5KAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMEAAAAc29ydAQAAABz
-AgAAAAABcxIAAABwb3J0YWxfcHJlZmVyZW5jZXNzJAAAAGdldFByZWZlcnJlZEFjY291bnRpbmdU
-cmFuc2FjdGlvbkdhcHMXAAAAZ2V0UG9ydGFsRGVmYXVsdEdhcFJvb3RzEQAAAHBvcnRhbF9jYXRl
-Z29yaWVzcw8AAAByZXNvbHZlQ2F0ZWdvcnlzGAAAAGdldENhdGVnb3J5Q2hpbGRJdGVtTGlzdHME
-AAAAYmFzZWkAAAAAcw4AAABkaXNwbGF5X21ldGhvZHMLAAAAc29ydF9tZXRob2QoBwAAAHMHAAAA
-ZGlzcGxheXMEAAAAc29ydHMJAAAAX2dldGF0dHJfcwcAAABjb250ZXh0cwgAAABnYXBfcm9vdHMI
-AAAAS2V5RXJyb3JzAwAAAG9iaigHAAAAcwcAAABkaXNwbGF5cwQAAABzb3J0cwkAAABfZ2V0YXR0
-cl9zBwAAAGNvbnRleHRzCAAAAGdhcF9yb290cwgAAABLZXlFcnJvcnMDAAAAb2JqKAAAAAAoAQAA
-AHMHAAAAZGlzcGxheXMPAAAAU2NyaXB0IChQeXRob24pcxYAAABBY2NvdW50X2dldEdhcEl0ZW1M
-aXN0AQAAAHMQAAAACQMMAwMBHwEOAQMBFwEeASgBAAAAcxYAAABBY2NvdW50X2dldEdhcEl0ZW1M
-aXN0KAEAAABzFgAAAEFjY291bnRfZ2V0R2FwSXRlbUxpc3QoAAAAACgAAAAAcw8AAABTY3JpcHQg
-KFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
+            <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAAkAAAASAAAAAwAA
+AHOwAAAAZAEAhAAAiQEAhwEAZAIAhgAAiQAAeR8AdAIAdAIAdAMAZAMAgwIAZAQAgwIAgwAAfQQA
+V24oAAR0BQBqCgBvHAABAQEBggAAdAIAdAMAZAUAgwIAgwAAfQQAbgIAAViHAACHAQBkBgCGAAB9
+BgBkBwBrBwBsCAB9CAABfAgAfAYAZAgAZAkAgwEBfQYAfAYAZAoAfAQAZAsAdAIAdAMAZAwAgwIA
+gwAAgwACU2QAAFMoDQAAAE5jAQAAAAIAAAAGAAAAQwAAAHMqAAAAZAEAdAAAfAAAZAIAgwIAgwAA
+dAAAfAAAZAMAgwIAgwAAZgIAFlNkAABTKAQAAABOcwcAAAAlcyAtICVzcwUAAABnZXRJZHMIAAAA
+Z2V0VGl0bGUoAgAAAHMJAAAAX2dldGF0dHJfcwEAAAB4KAIAAABzAQAAAHhzCQAAAF9nZXRhdHRy
+XygAAAAAKAAAAABzDwAAAFNjcmlwdCAoUHl0aG9uKXMHAAAAZGlzcGxheQEAAABzAgAAAAABYwIA
+AAAEAAAABQAAAAMAAABzHQAAAHQAAIgAAHwAAIMBAIgAAHwBAIMBAIMCAFNkAABTKAEAAABOKAQA
+AABzAwAAAGNtcHMHAAAAZGlzcGxheXMBAAAAeHMBAAAAeSgEAAAAcwEAAAB4cwEAAAB5cwMAAABj
+bXBzBwAAAGRpc3BsYXkoAQAAAHMHAAAAZGlzcGxheSgAAAAAcw8AAABTY3JpcHQgKFB5dGhvbilz
+BAAAAHNvcnQEAAAAcwIAAAAAAXMSAAAAcG9ydGFsX3ByZWZlcmVuY2VzcyQAAABnZXRQcmVmZXJy
+ZWRBY2NvdW50aW5nVHJhbnNhY3Rpb25HYXBzFwAAAGdldFBvcnRhbERlZmF1bHRHYXBSb290YwIA
+AAAHAAAACAAAAAMAAABzRAAAAHQAAHQAAHQBAGQBAIMCAGQCAIMCAHwAAIMBAH0EAHQAAHwEAGQD
+AIMCAGQEAGQFAGQGAIgBAGQHAIgAAIMAA1NkAABTKAgAAABOcxEAAABwb3J0YWxfY2F0ZWdvcmll
+c3MPAAAAcmVzb2x2ZUNhdGVnb3J5cxgAAABnZXRDYXRlZ29yeUNoaWxkSXRlbUxpc3RzBAAAAGJh
+c2VpAAAAAHMOAAAAZGlzcGxheV9tZXRob2RzCwAAAHNvcnRfbWV0aG9kKAYAAABzCQAAAF9nZXRh
+dHRyX3MHAAAAY29udGV4dHMIAAAAZ2FwX3Jvb3RzAwAAAG9ianMHAAAAZGlzcGxheXMEAAAAc29y
+dCgHAAAAcwgAAABnYXBfcm9vdHMLAAAAcG9ydGFsX3BhdGhzCQAAAF9nZXRhdHRyX3MHAAAAY29u
+dGV4dHMDAAAAb2JqcwcAAABkaXNwbGF5cwQAAABzb3J0KAIAAABzBAAAAHNvcnRzBwAAAGRpc3Bs
+YXkoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcw4AAABnZXRHYXBJdGVtTGlzdA0AAABzBAAAAAAB
+HgEoAQAAAHMNAAAAQ2FjaGluZ01ldGhvZHMCAAAAaWRzFgAAAEFjY291bnQuZ2V0R2FwSXRlbUxp
+c3RzCAAAAGdhcF9yb290cwsAAABwb3J0YWxfcGF0aHMKAAAAcG9ydGFsX3VybCgJAAAAcwcAAABk
+aXNwbGF5cwQAAABzb3J0cwkAAABfZ2V0YXR0cl9zBwAAAGNvbnRleHRzCAAAAGdhcF9yb290cwgA
+AABLZXlFcnJvcnMOAAAAZ2V0R2FwSXRlbUxpc3RzFwAAAFByb2R1Y3RzLkVSUDVUeXBlLkNhY2hl
+cw0AAABDYWNoaW5nTWV0aG9kKAkAAABzBwAAAGRpc3BsYXlzBAAAAHNvcnRzCQAAAF9nZXRhdHRy
+X3MHAAAAY29udGV4dHMIAAAAZ2FwX3Jvb3RzCAAAAEtleUVycm9ycw4AAABnZXRHYXBJdGVtTGlz
+dHMXAAAAUHJvZHVjdHMuRVJQNVR5cGUuQ2FjaGVzDQAAAENhY2hpbmdNZXRob2QoAAAAACgCAAAA
+cwQAAABzb3J0cwcAAABkaXNwbGF5cw8AAABTY3JpcHQgKFB5dGhvbilzFgAAAEFjY291bnRfZ2V0
+R2FwSXRlbUxpc3QBAAAAcxQAAAAJAwwDAwEfAQ4BAwEXAg8EDQESASgBAAAAcxYAAABBY2NvdW50
+X2dldEdhcEl0ZW1MaXN0KAEAAABzFgAAAEFjY291bnRfZ2V0R2FwSXRlbUxpc3QoAAAAACgAAAAA
+cw8AAABTY3JpcHQgKFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
         </item>
         <item>
             <key> <string>_filepath</string> </key>
@@ -144,7 +160,9 @@ KFB5dGhvbilzCAAAADxtb2R1bGU+AQAAAHMAAAAA</string> </value>
                             <string>context</string>
                             <string>gap_root</string>
                             <string>KeyError</string>
-                            <string>obj</string>
+                            <string>getGapItemList</string>
+                            <string>Products.ERP5Type.Cache</string>
+                            <string>CachingMethod</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getSourcePaymentList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getSourcePaymentList.xml
new file mode 100755
index 0000000000000000000000000000000000000000..4d8f8e5ec36b834c731231ca298afd7ec2f1085b
--- /dev/null
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_getSourcePaymentList.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.PythonScripts.PythonScript</string>
+          <string>PythonScript</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Python_magic</string> </key>
+            <value> <string encoding="base64">O/INCg==</string> </value>
+        </item>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>account = context\n
+\n
+source_payment_set = {}\n
+\n
+for line in account.Account_getAccountingTransactionList() :\n
+   movement_path = line.current_transaction_line_path\n
+   movement = context.restrictedTraverse(movement_path)\n
+   source_payment_set[movement.getSourcePayment()] = 1\n
+#   if movement.getSourcePayment() is None : \n
+#      context.log(\'Movement getSourcePayment None \', movement.getPath())\n
+return source_payment_set.keys()\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value> <string encoding="base64">YwAAAAAAAAAAAQAAAEAAAABzDQAAAGQBAIQAAFoAAGQAAFMoAgAAAE5jAAAAAAkAAAAJAAAAQwAA
+AHODAAAAdAAAfQEAaAAAfQIAeGAAdAMAdAQAfAEAZAEAgwIAgwAAgwEARF1GAH0FAHQEAHwFAGQC
+AIMCAH0GAHQEAHQAAGQDAIMCAHwGAIMBAH0HAGQEAHQIAHwCAIMBAHQEAHwHAGQFAIMCAIMAADxx
+JQBXdAQAfAIAZAYAgwIAgwAAU2QAAFMoBwAAAE5zJAAAAEFjY291bnRfZ2V0QWNjb3VudGluZ1Ry
+YW5zYWN0aW9uTGlzdHMdAAAAY3VycmVudF90cmFuc2FjdGlvbl9saW5lX3BhdGhzEgAAAHJlc3Ry
+aWN0ZWRUcmF2ZXJzZWkBAAAAcxAAAABnZXRTb3VyY2VQYXltZW50cwQAAABrZXlzKAkAAABzBwAA
+AGNvbnRleHRzBwAAAGFjY291bnRzEgAAAHNvdXJjZV9wYXltZW50X3NldHMJAAAAX2dldGl0ZXJf
+cwkAAABfZ2V0YXR0cl9zBAAAAGxpbmVzDQAAAG1vdmVtZW50X3BhdGhzCAAAAG1vdmVtZW50cwcA
+AABfd3JpdGVfKAkAAABzBwAAAGNvbnRleHRzBwAAAGFjY291bnRzEgAAAHNvdXJjZV9wYXltZW50
+X3NldHMJAAAAX2dldGl0ZXJfcwkAAABfZ2V0YXR0cl9zBAAAAGxpbmVzDQAAAG1vdmVtZW50X3Bh
+dGhzCAAAAG1vdmVtZW50cwcAAABfd3JpdGVfKAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24p
+cxwAAABBY2NvdW50X2dldFNvdXJjZVBheW1lbnRMaXN0AQAAAHMOAAAABgIGAhkABgEPARUBIAMo
+AQAAAHMcAAAAQWNjb3VudF9nZXRTb3VyY2VQYXltZW50TGlzdCgBAAAAcxwAAABBY2NvdW50X2dl
+dFNvdXJjZVBheW1lbnRMaXN0KAAAAAAoAAAAAHMPAAAAU2NyaXB0IChQeXRob24pcwgAAAA8bW9k
+dWxlPgEAAABzAAAAAA==</string> </value>
+        </item>
+        <item>
+            <key> <string>_filepath</string> </key>
+            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/Account_getSourcePaymentList</string> </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>0</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>context</string>
+                            <string>account</string>
+                            <string>source_payment_set</string>
+                            <string>_getiter_</string>
+                            <string>_getattr_</string>
+                            <string>line</string>
+                            <string>movement_path</string>
+                            <string>movement</string>
+                            <string>_write_</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Account_getSourcePaymentList</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>