Confession

Not finding an explanation in science I began to seek for it in life, hoping to find it among the people around me. And I began to observe how the people around me people like myself - lived, and what their attitude was to this question which had brought me to despair.

And this is what I found among people who were in the same position as myself as regards education and manner of life.

I found that for people of my circle there were four ways out of the terrible position in which we are all placed.

The first was that of ignorance. It consists in not knowing, not understanding, that life is an evil and an absurdity. People of this sort-chiefly women, or very young or very dull people-have not yet understood that question of life which presented itself to Schopenhauer, Solomon, and Buddha. They see neither the dragon that awaits them nor the mice gnawing the shrub by which they are hanging, and they lick the drops of honey, but they lick those drops of honey only for a while: something will turn their attention to the dragon and the mice, and there will be an end to their licking. From them I had nothing to learn-one cannot cease to know what one does know.

The second way out is epicureanism. It consists, while knowing the hopelessness of life, in making use meanwhile of the advantages one has, disregarding the dragon and the mice, and licking the honey in the best way, especially if there is much of it within reach. Solomon expresses this way out thus: "Then I commended mirth, because a man hath no better thing under the sun, than to eat, and to drink, and to be merry: and that this should accompany him in his labour the days of his life, which God giveth him under the sun.

Therefore eat thy bread with joy and drink thy wine with a merry heart. ... Live joyfully with the wife whom thou lovest all the days of the life of thy vanity ... for this is thy portion in life and in thy labours which thou takest under the sun. ... Whatsoever thy hand findeth to do, do it with thy might, for there is not work, nor device, nor knowledge, nor wisdom, in the grave, whither thou goest.

That is the way in which the majority of people of our circle make life possible for themselves. Their circumstances furnish them with more of welfare than of hardship, and their moral dullness makes it possible for them to forget that the advantage of their position is accidental, and that not everyone can have a thousand wives and palaces like Solomon, that for everyone who has a thousand wives there are a thousand without a wife, and that for each palace there are a thousand people who have to build it in the sweat of their brows; and that the accident that has today made me a Solomon may tomorrow make me a Solomon`s slave. The dullness of these people`s imagination enables them to forget the things that gave Buddha no peace-the inevitability of sickness, old age, and death, which today or tomorrow will destroy all these pleasures.

The third escape is that of strength and energy. It consists in destroying life, when one has understood that it is an evil and an absurdity. A few exceptionally strong and consistent people act so. Having understood the stupidity of the joke that has been played on them, and having understood that it is better to be dead than to be alive, and that it is best of all not to exist, they act accordingly and promptly end this stupid joke, since there are means: a rope round one`s neck, water, a knife to stick into one`s heart, or the trains on the railways; and the number of those of our circle who act in this way becomes greater and greater, and for the most part they act so at the best time of their life, when the strength of their mind is in full bloom and few habits degrading to the mind have as yet been acquired.

The fourth way out is that of weakness. It consists in seeing the truth of the situation and yet clinging to life, knowing in advance that nothing can come of it. People of this kind know that death is better than life, but not having the strength to act rationally-to end the deception quickly and kill themselves-they seem to wait for something. This is the escape of weakness, for if I know what is best and it is within my power, why not yield to what is best? ... I found myself in that category.

So people of my class evade the terrible contradiction in four ways. Strain my attention as I would, I saw no way except those four. One way was not to understand that life is senseless, vanity, and an evil, and that it is better not to live. I could not help knowing this, and when I once knew it could not shut my eyes to it. The second way was to use life such as it is without thinking of the future. And I could not do that. I, like Sakya Muni, could not ride out hunting when I knew that old age, suffering, and death exist. My imagination was too vivid. Nor could I rejoice in the momentary accidents that for an instant threw pleasure to my lot. The third way, having understood that life is evil and stupid, was to end it by killing oneself. I understood that, but somehow still did not kill myself. The fourth way was to live like Solomon and Schopenhauer-knowing that life is a stupid joke played upon us, and still to go on living, washing oneself, dressing, dining, talking, and even writing books. This was to me repulsive and tormenting, but I remained in that position.

I see now that if I did not kill myself it was due to some dim consciousness of the invalidity of my thoughts. However convincing and indubitable appeared to me the sequence of my thoughts and of those of the wise that have brought us to the admission of the senselessness of life, there remained in me a vague doubt of the justice of my conclusion.

It was like this: I, my reason, have acknowledged that life is senseless. If there is nothing higher than reason (and there is not: nothing can prove that there is,','), then reason is the creator of life for me. If reason did not exist there would be for me no life. How can reason deny life when it is the creator of life? Or to put it the other way: were there no life, my reason would not exist; therefore reason is life`s son. Life is all. Reason is its fruit yet reason rejects life itself! I felt that there was something wrong here.

  1. (
  2. [0] => menu.48ac5d25ab7fb8065a03b2a19458089a
  3. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  4. [2] => menu.94598630b740ec08860f5f0e9483c030
  5. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  6. [4] => posts.cd2d252f27ee1f27069a61cef98b035e
  7. [5] => posts.cd2d252f27ee1f27069a61cef98b035e_expire
  8. [6] => posts.d94e88b79394c4004b5322416beadb1c
  9. [7] => posts.d94e88b79394c4004b5322416beadb1c_expire
  10. [8] => comments.1edf06e42f1ee3223791303182b63df4
  11. [9] => comments.1edf06e42f1ee3223791303182b63df4_expire
  12. [10] => content\categories.c5f09ba3257d23587936d87ea55124da
  13. [11] => content\categories.c5f09ba3257d23587936d87ea55124da_expire
  14. [12] => content\categories.21b383783637152eb488559a25b8eefa
  15. [13] => content\categories.21b383783637152eb488559a25b8eefa_expire
  16. [14] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  17. [15] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  18. [16] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  19. [17] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  20. )
  21. d94e88b79394c4004b5322416beadb1c_expire
  22. [8] => comments.1edf06e42f1ee3223791303182b63df4
  23. [9] => comments.1edf06e42f1ee3223791303182b63df4_expire
  24. [10] => content\categories.c5f09ba3257d23587936d87ea55124da
  25. [11] => content\categories.c5f09ba3257d23587936d87ea55124da_expire
  26. [12] => content\categories.21b383783637152eb488559a25b8eefa
  27. [13] => content\categories.21b383783637152eb488559a25b8eefa_expire
  28. [14] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  29. [15] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  30. [16] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  31. [17] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  32. )
  33. [27-May-2026 04:08:10 PRC] wait cache /cat/electronics/2Array
  34. (
  35. [0] => menu.48ac5d25ab7fb8065a03b2a19458089a
  36. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  37. [2] => menu.94598630b740ec08860f5f0e9483c030
  38. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  39. [4] => posts.cd2d252f27ee1f27069a61cef98b035e
  40. [5] => posts.cd2d252f27ee1f27069a61cef98b035e_expire
  41. [6] => posts.d94e88b79394c4004b5322416beadb1c
  42. [7] => posts.d94e88b79394c4004b5322416beadb1c_expire
  43. [8] => comments.1edf06e42f1ee3223791303182b63df4
  44. [9] => comments.1edf06e42f1ee3223791303182b63df4_expire
  45. [10] => content\categories.c5f09ba3257d23587936d87ea55124da
  46. [11] => content\categories.c5f09ba3257d23587936d87ea55124da_expire
  47. [12] => content\categories.21b383783637152eb488559a25b8eefa
  48. [13] => content\categories.21b383783637152eb488559a25b8eefa_expire
  49. [14] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  50. [15] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  51. [16] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  52. [17] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  53. )
  54. [27-May-2026 04:08:11 PRC] wait cache /cat/electronics/3Array
  55. (
  56. [0] => menu.48ac5d25ab7fb8065a03b2a19458089a
  57. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  58. [2] => menu.94598630b740ec08860f5f0e9483c030
  59. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  60. [4] => posts.2aec5c7d91795d22279eecabfc333f9e
  61. [5] => posts.2aec5c7d91795d22279eecabfc333f9e_expire
  62. [6] => posts.d94e88b79394c4004b5322416beadb1c
  63. [7] => posts.d94e88b79394c4004b5322416beadb1c_expire
  64. [8] => comments.1edf06e42f1ee3223791303182b63df4
  65. [9] => comments.1edf06e42f1ee3223791303182b63df4_expire
  66. [10] => content\categories.c5f09ba3257d23587936d87ea55124da
  67. [11] => content\categories.c5f09ba3257d23587936d87ea55124da_expire
  68. [12] => content\categories.21b383783637152eb488559a25b8eefa
  69. [13] => content\categories.21b383783637152eb488559a25b8eefa_expire
  70. [14] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  71. [15] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  72. [16] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  73. [17] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  74. )
  75. [27-May-2026 04:08:11 PRC] wait cache /cat/electronics/2Array
  76. (
  77. [0] => menu.48ac5d25ab7fb8065a03b2a19458089a
  78. [1] => menu.48ac5d25ab7fb8065a03b2a19458089a_expire
  79. [2] => menu.94598630b740ec08860f5f0e9483c030
  80. [3] => menu.94598630b740ec08860f5f0e9483c030_expire
  81. [4] => posts.cd2d252f27ee1f27069a61cef98b035e
  82. [5] => posts.cd2d252f27ee1f27069a61cef98b035e_expire
  83. [6] => posts.d94e88b79394c4004b5322416beadb1c
  84. [7] => posts.d94e88b79394c4004b5322416beadb1c_expire
  85. [8] => comments.1edf06e42f1ee3223791303182b63df4
  86. [9] => comments.1edf06e42f1ee3223791303182b63df4_expire
  87. [10] => content\categories.c5f09ba3257d23587936d87ea55124da
  88. [11] => content\categories.c5f09ba3257d23587936d87ea55124da_expire
  89. [12] => content\categories.21b383783637152eb488559a25b8eefa
  90. [13] => content\categories.21b383783637152eb488559a25b8eefa_expire
  91. [14] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  92. [15] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  93. [16] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea
  94. [17] => content\archives.7dd3ad53d7acb600b6cc89c01126d6ea_expire
  95. )
    1. SELECT namespace, `key`, value FROM setting AS _ WHERE 1 = 1 AND _.site_id = :site_id AND _.namespace = :namespace AND _.`key` IN (:key)
      1. insert-scripts
        1. header
        2. footer
      2. 1
      3. SELECT namespace, `key`, value FROM setting AS _ WHERE 1 = 1 AND _.site_id = 1 AND _.namespace = 'insert-scripts' AND _.`key` IN ('header','footer')
    1. SELECT post.*,_.post_id,_.slug,_.name,_.meta_keywords,_.meta_description,_.language_id,post.template,language.code,language.code as array_key FROM post_content AS _ LEFT JOIN language ON (language.language_id = _.language_id) LEFT JOIN post ON (post.post_id = _.post_id) LEFT JOIN post_to_site pt ON (pt.post_id = _.post_id) WHERE 1 = 1 AND _.post_id = (SELECT post_id FROM post_content WHERE slug = :slug LIMIT 1) AND pt.site_id = :site_id
      1. 1
      2. 1
        1. info@maishainfotech.com
        2. info@maishainfotech.com
        3. //cdn.statically.io/img/ecomdemo.micodetest.com/media//favicon-16x16.png
        4. //cdn.statically.io/img/ecomdemo.micodetest.com/media//logo-foot512.png
        5. //cdn.statically.io/img/ecomdemo.micodetest.com/media//Adobe Express - file.png
        6. //cdn.statically.io/img/ecomdemo.micodetest.com/media//Maisha Logo 500x500.png
        7. //cdn.statically.io/img/ecomdemo.micodetest.com/media//dark_maisha_logo.png
          1. Ecom Demo
          2. The next generation Ecommerce
          3. cms, page builder, drag and drop, ecommerce, ecommerce platform, designer, developer, php, bootstrap 5
          4. Powerful and easy to use drag and drop website builder for blogs, presentation or ecommerce stores
          5. +919211244254
        8. West 21st Street Brooklyn NY
        9. 223
        10. 3655
        11. Maisha Infotech Pvt Ltd
        12. 1
        13. 1
        14. 1
        15. 1
        16. F j, Y
        17. g:i A
        18. 800
        19. 450
        20. cs
        21. 400
        22. 225
        23. cs
        24. 150
        25. 84
        26. cs
        27. 800
        28. 1021
        29. cs
        30. 400
        31. 510
        32. cs
        33. 150
        34. 190
        35. cs
        36. 14
        37. 5
        38. 50
        39. newest
        40. asc
        41. I-{year2}-{month}-{order_id}-{user_id}-{customer_order_id}
        42. {rand-str-12}-{year2}
        43. 1
        44. 1
        45. 1
        46. /favicon-16x16.png
        47. /logo-foot512.png
        48. /Adobe Express - file.png
        49. /Maisha Logo 500x500.png
        50. /dark_maisha_logo.png
        51. kg
        52. cm
        53. ecomdemo.micodetest.com
        1. en_US
        2. en-us
        3. 1
        4. en_US
        5. en-us
        6. 1
        7. USD
        8. 1
        9. hello-world-2
        10. post
        11. SELECT post.*,_.post_id,_.slug,_.name,_.meta_keywords,_.meta_description,_.language_id,post.template,language.code,language.code as array_key FROM post_content AS _ LEFT JOIN language ON (language.language_id = _.language_id) LEFT JOIN post ON (post.post_id = _.post_id) LEFT JOIN post_to_site pt ON (pt.post_id = _.post_id) WHERE 1 = 1 AND _.post_id = (SELECT post_id FROM post_content WHERE slug = 'hello-world-2' LIMIT 1) AND pt.site_id = 1
      1. SELECT _.*,pd.*,ad.admin_id,ad.username,ad.display_name,ad.email, ad.avatar, ad.bio, ad.first_name, ad.last_name ,(SELECT COUNT(c.comment_id) FROM comment c WHERE _.post_id = c.post_id AND c.status = :comment_status ) AS comment_count FROM post AS _ LEFT JOIN post_content pd ON (_.post_id = pd.post_id AND pd.language_id = :language_id) LEFT JOIN admin ad ON (_.admin_id = ad.admin_id) WHERE 1 = 1 AND _.post_id = :post_id LIMIT 1
        1. 1
        2. 1
        3. 1
        4. en_US
        5. en_US
        6. 1
        7. 1
        8. 2
        9. hello-world-2
        10. publish
        11. 1
        12. 1
        13. SELECT _.*,pd.*,ad.admin_id,ad.username,ad.display_name,ad.email, ad.avatar, ad.bio, ad.first_name, ad.last_name ,(SELECT COUNT(c.comment_id) FROM comment c WHERE _.post_id = c.post_id AND c.status = 1 ) AS comment_count FROM post AS _ LEFT JOIN post_content pd ON (_.post_id = pd.post_id AND pd.language_id = 1) LEFT JOIN admin ad ON (_.admin_id = ad.admin_id) WHERE 1 = 1 AND _.post_id = 2 LIMIT 1
      1. SELECT `key` as array_key,value as array_value FROM post_meta as _ WHERE _.post_id = 2
        1. 1
        2. 1
        3. 1
        4. en_US
        5. en_US
        6. 1
        7. 1
        8. 2
        9. hello-world-2
        10. publish
        11. 1
        12. 1
        13. SELECT `key` as array_key,value as array_value FROM post_meta as _ WHERE _.post_id = 2
      1. SELECT DISTINCT categories.taxonomy_item_id, categories.*, tc.*, tc.content as content, tc.name as name, categories.taxonomy_item_id as array_key ,pt.post_id as checked FROM taxonomy_item AS categories INNER JOIN taxonomy_to_site t2s ON (categories.taxonomy_item_id = t2s.taxonomy_item_id AND t2s.site_id = :site_id) INNER JOIN taxonomy_item_content tc ON (categories.taxonomy_item_id = tc.taxonomy_item_id AND tc.language_id = :language_id) INNER JOIN taxonomy t ON (categories.taxonomy_id = t.taxonomy_id) INNER JOIN post_to_taxonomy_item pt ON (categories.taxonomy_item_id = pt.taxonomy_item_id AND pt.post_id = :post_id) WHERE tc.language_id = :language_id AND t2s.site_id = :site_id AND t.type = :type AND t.post_type = :post_type ORDER BY categories.parent_id, categories.sort_order, categories.taxonomy_item_id LIMIT :start, :limit
        1. 1
        2. 1
        3. 1
        4. en_US
        5. en_US
        6. 1
        7. 1
        8. 7
        9. 2
        10. tags
        11. post
        12. SELECT DISTINCT categories.taxonomy_item_id, categories.*, tc.*, tc.content as content, tc.name as name, categories.taxonomy_item_id as array_key ,pt.post_id as checked FROM taxonomy_item AS categories INNER JOIN taxonomy_to_site t2s ON (categories.taxonomy_item_id = t2s.taxonomy_item_id AND t2s.site_id = 1) INNER JOIN taxonomy_item_content tc ON (categories.taxonomy_item_id = tc.taxonomy_item_id AND tc.language_id = 1) INNER JOIN taxonomy t ON (categories.taxonomy_id = t.taxonomy_id) INNER JOIN post_to_taxonomy_item pt ON (categories.taxonomy_item_id = pt.taxonomy_item_id AND pt.post_id = 2) WHERE tc.language_id = 1 AND t2s.site_id = 1 AND t.type = 'tags' AND t.post_type = 'post' ORDER BY categories.parent_id, categories.sort_order, categories.taxonomy_item_id LIMIT 0, 7
      1. SELECT count(*) FROM ( SELECT categories.taxonomy_item_id FROM taxonomy_item AS categories INNER JOIN taxonomy_to_site t2s ON (categories.taxonomy_item_id = t2s.taxonomy_item_id AND t2s.site_id = :site_id) INNER JOIN taxonomy_item_content tc ON (categories.taxonomy_item_id = tc.taxonomy_item_id AND tc.language_id = :language_id) INNER JOIN taxonomy t ON (categories.taxonomy_id = t.taxonomy_id) INNER JOIN post_to_taxonomy_item pt ON (categories.taxonomy_item_id = pt.taxonomy_item_id AND pt.post_id = :post_id) WHERE tc.language_id = :language_id AND t2s.site_id = :site_id AND t.type = :type AND t.post_type = :post_type ORDER BY categories.parent_id, categories.sort_order, categories.taxonomy_item_id ) as count
        1. 1
        2. 1
        3. 1
        4. en_US
        5. en_US
        6. 1
        7. 1
        8. 7
        9. 2
        10. tags
        11. post
        12. SELECT count(*) FROM ( SELECT categories.taxonomy_item_id FROM taxonomy_item AS categories INNER JOIN taxonomy_to_site t2s ON (categories.taxonomy_item_id = t2s.taxonomy_item_id AND t2s.site_id = 1) INNER JOIN taxonomy_item_content tc ON (categories.taxonomy_item_id = tc.taxonomy_item_id AND tc.language_id = 1) INNER JOIN taxonomy t ON (categories.taxonomy_id = t.taxonomy_id) INNER JOIN post_to_taxonomy_item pt ON (categories.taxonomy_item_id = pt.taxonomy_item_id AND pt.post_id = 2) WHERE tc.language_id = 1 AND t2s.site_id = 1 AND t.type = 'tags' AND t.post_type = 'post' ORDER BY categories.parent_id, categories.sort_order, categories.taxonomy_item_id ) as count
      1. SELECT _.*, role.name as role,role.permissions FROM admin AS _ LEFT JOIN role ON (_.role_id = role.role_id) WHERE 1 = 1 AND _.admin_id = :admin_id LIMIT 1
        1. 1
        2. 1
        3. 1
        4. en_US
        5. en_US
        6. 1
        7. 1
        8. 1
        9. SELECT _.*, role.name as role,role.permissions FROM admin AS _ LEFT JOIN role ON (_.role_id = role.role_id) WHERE 1 = 1 AND _.admin_id = 1 LIMIT 1
      1. SELECT user.username, user.email, user.first_name, user.last_name, user.display_name, user.avatar, user.bio, user.subscribe, comment.*, comment_id as array_key FROM comment LEFT JOIN user ON (user.user_id = comment.user_id) WHERE 1 = 1 AND comment.post_id = :post_id AND comment.post_id = (SELECT post_id FROM post_content WHERE slug = :slug LIMIT 1) AND comment.status = :status ORDER BY parent_id, comment_id LIMIT :start, :limit
        1. 1
        2. 1
        3. 1
        4. en_US
        5. en_US
        6. 1
        7. 1
        8. 2
        9. hello-world-2
        10. 1
        11. 10
        12. asc
        13. SELECT user.username, user.email, user.first_name, user.last_name, user.display_name, user.avatar, user.bio, user.subscribe, comment.*, comment_id as array_key FROM comment LEFT JOIN user ON (user.user_id = comment.user_id) WHERE 1 = 1 AND comment.post_id = 2 AND comment.post_id = (SELECT post_id FROM post_content WHERE slug = 'hello-world-2' LIMIT 1) AND comment.status = 1 ORDER BY parent_id, comment_id LIMIT 0, 10
      1. SELECT count(*) FROM ( SELECT comment_id FROM comment LEFT JOIN user ON (user.user_id = comment.user_id) WHERE 1 = 1 AND comment.post_id = :post_id AND comment.post_id = (SELECT post_id FROM post_content WHERE slug = :slug LIMIT 1) AND comment.status = :status ORDER BY parent_id, comment_id ) as count
        1. 1
        2. 1
        3. 1
        4. en_US
        5. en_US
        6. 1
        7. 1
        8. 2
        9. hello-world-2
        10. 1
        11. 10
        12. asc
        13. SELECT count(*) FROM ( SELECT comment_id FROM comment LEFT JOIN user ON (user.user_id = comment.user_id) WHERE 1 = 1 AND comment.post_id = 2 AND comment.post_id = (SELECT post_id FROM post_content WHERE slug = 'hello-world-2' LIMIT 1) AND comment.status = 1 ORDER BY parent_id, comment_id ) as count
      1. SELECT namespace, `key`, value FROM setting AS _ WHERE 1 = 1 AND _.site_id = :site_id AND _.namespace = :namespace AND _.`key` IN (:key)
        1. dicebear
          1. url
          2. size
          3. style
          4. flip
        2. 1
        3. SELECT namespace, `key`, value FROM setting AS _ WHERE 1 = 1 AND _.site_id = 1 AND _.namespace = 'dicebear' AND _.`key` IN ('url','size','style','flip')
      1. SELECT namespace, `key`, value FROM setting AS _ WHERE 1 = 1 AND _.site_id = :site_id AND _.namespace = :namespace AND _.`key` IN (:key)
        1. gravatar
          1. size
          2. rating
          3. default
        2. 1
        3. SELECT namespace, `key`, value FROM setting AS _ WHERE 1 = 1 AND _.site_id = 1 AND _.namespace = 'gravatar' AND _.`key` IN ('size','rating','default')
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/cdn/plugin.php [line: 75 - 83] */
            function ($publicPath, $type, $image, $size){
            			$publicPath = $options['url'];
            			$publicPath = str_replace(
            				['%host%', '%type%', '%image%', '%size%'],
            				[$_SERVER['HTTP_HOST'], $type, $image, $size],
            				$publicPath);
            
            			return [$publicPath, $type, $image, $size];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/theme-market/plugin.php [line: 107 - 113] */
            function ($image, $type, $size){
            			if ($type == 'product') {
            				$image = str_replace('/media/', '', $image);
            			}
            
            			return [$image, $type, $size];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/debug/plugin.php [line: 124 - 129] */
            function ($sql, $params){
            			$debugSql = $db->debugSql($sql, $params);
            			$this->view->debug['data']['sql'][] = [$sql, $params + ['sql' => $debugSql]];
            
            			return [$sql, $params];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/debug/plugin.php [line: 167 - 180] */
            function (){
            			$events = Event::getEvents();
            
            			array_walk_recursive($events, function (&$value, $key) {
            				if (is_object($value)) {
            					if ($value instanceof \Closure) {
            						$value = $this->closureDump($value);
            					}
            				}
            			});
            
            			$this->view->debug['data']['filters'] = $events;
            			$this->view->debug['data']['request'] = Routes::getUrlData();
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/theme-market/plugin.php [line: 90 - 99] */
            function ($template, $htmlFile, $tplFile, $vTpl, $view){
            			// add captcha js and field to page
            			//if ($url = Routes::getUrlData()) {
            			//if (in_array($url['module'], $routes)) {
            			$vTpl->loadTemplateFile(__DIR__ . '/app/template/common.tpl');
            			//}
            			//}
            
            			return [$template, $htmlFile, $tplFile, $vTpl, $view];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/dicebear/plugin.php [line: 61 - 94] */
            function ($comments){
            			$options = \Vvveb\getSetting('dicebear', ['url', 'size', 'style', 'flip']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if ((! isset($comment['avatar']) || ! $comment['avatar']) &&
            						(isset($comment['email']) || ! $comment['email'])) {
            						$comment['avatar'] = $this->getDiceBear(
            								$comment['email'],
            								$options['url'] ?? DICEBAR_URL,
            								$options['size'] ?? 60,
            								$options['style'] ?? 'fun-emoji',
            								$options['flip'] ?? 'false'
            							);
            					}
            
            					if (isset($options['size'])) {
            						$comment['size'] = $options['size'];
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          2. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/gravatar/plugin.php [line: 61 - 88] */
            function ($comments){
            			$options = \Vvveb\getSetting('gravatar', ['size', 'rating', 'default']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if (! isset($comment['avatar']) || ! $comment['avatar']) {
            						$comment['avatar'] = $this->getGravatar(
            								$comment['email'],
            								$options['size'] ?? 60,
            								$options['default'] ?? 'mm',
            								$options['rating'] ?? 'g'
            							);
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/dicebear/plugin.php [line: 61 - 94] */
            function ($comments){
            			$options = \Vvveb\getSetting('dicebear', ['url', 'size', 'style', 'flip']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if ((! isset($comment['avatar']) || ! $comment['avatar']) &&
            						(isset($comment['email']) || ! $comment['email'])) {
            						$comment['avatar'] = $this->getDiceBear(
            								$comment['email'],
            								$options['url'] ?? DICEBAR_URL,
            								$options['size'] ?? 60,
            								$options['style'] ?? 'fun-emoji',
            								$options['flip'] ?? 'false'
            							);
            					}
            
            					if (isset($options['size'])) {
            						$comment['size'] = $options['size'];
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          2. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/gravatar/plugin.php [line: 61 - 88] */
            function ($comments){
            			$options = \Vvveb\getSetting('gravatar', ['size', 'rating', 'default']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if (! isset($comment['avatar']) || ! $comment['avatar']) {
            						$comment['avatar'] = $this->getGravatar(
            								$comment['email'],
            								$options['size'] ?? 60,
            								$options['default'] ?? 'mm',
            								$options['rating'] ?? 'g'
            							);
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/dicebear/plugin.php [line: 61 - 94] */
            function ($comments){
            			$options = \Vvveb\getSetting('dicebear', ['url', 'size', 'style', 'flip']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if ((! isset($comment['avatar']) || ! $comment['avatar']) &&
            						(isset($comment['email']) || ! $comment['email'])) {
            						$comment['avatar'] = $this->getDiceBear(
            								$comment['email'],
            								$options['url'] ?? DICEBAR_URL,
            								$options['size'] ?? 60,
            								$options['style'] ?? 'fun-emoji',
            								$options['flip'] ?? 'false'
            							);
            					}
            
            					if (isset($options['size'])) {
            						$comment['size'] = $options['size'];
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          2. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/gravatar/plugin.php [line: 61 - 88] */
            function ($comments){
            			$options = \Vvveb\getSetting('gravatar', ['size', 'rating', 'default']);
            
            			$commentType = false;
            
            			foreach ($types as $type) {
            				if (isset($comments[$type])) {
            					$commentType = $type;
            
            					break;
            				}
            			}
            
            			if ($commentType) {
            				foreach ($comments[$commentType] as &$comment) {
            					if (! isset($comment['avatar']) || ! $comment['avatar']) {
            						$comment['avatar'] = $this->getGravatar(
            								$comment['email'],
            								$options['size'] ?? 60,
            								$options['default'] ?? 'mm',
            								$options['rating'] ?? 'g'
            							);
            					}
            				}
            			}
            
            			return [$comments];
            		};
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/shipping/plugin.php [line: 79 - 89] */
            function ($site){
            			$request = Request::getInstance();
            			$route = $request->get['route'] ?? '';
            			$module = $request->get['module'] ?? '';
            
            			if ($route == '/checkout' || $module == 'checkout/checkout/index') {
            				$this->init();
            			}
            
            			return [$site];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/theme-market/plugin.php [line: 116 - 120] */
            function ($options){
            			$options['type'] = 'theme';
            
            			return [$options];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/theme-market/plugin.php [line: 123 - 131] */
            function ($results){
            			if (isset($results['product'])) {
            				foreach ($results['product'] as &$product) {
            					$product['download_link'] = PUBLIC_PATH . 'market/themes/' . $product['slug'] . '.zip';
            				}
            			}
            
            			return [$results];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/theme-market/plugin.php [line: 134 - 140] */
            function ($results){
            			if ($results) {
            				$results['download_link'] = PUBLIC_PATH . 'market/themes/' . $results['slug'] . '.zip';
            			}
            
            			return [$results];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/toc-posts/plugin.php [line: 174 - 180] */
            function ($results = false){
            			if ($results && isset($results['content'])) {
            				$this->toc($results);
            			}
            
            			return [$results];
            		});
            
          1. /* /www/wwwroot/ecomdemo.micodetest.com/plugins/toc-posts/plugin.php [line: 182 - 188] */
            function ($results = false){
            			if ($results && isset($results[0])) {
            				$this->toc($results[0]);
            			}
            
            			return [$results];
            		});
            
    1. hello-world-2
    2. /{slug}
    3. content/post/index
    4. \/(?[^$\/]+)
    5. ?module=content/post&slug=hello-world-2&type=post