Page 1 of 2 12 LastLast
Results 1 to 25 of 36
  1. #1
    A Cockless Wonder
    Looper's Avatar
    Join Date
    Jun 2007
    Last Online
    @
    Posts
    16,316

    Repo Power Inflation

    Can't remember if I did a thread on this before or not but I can't find it.

    Anyhoo the problem of repo power inflation is still with us despite the repo revamp from a few months ago.

    Repo power is doubling every year as it always has been.

    I do not believe that my comments in 2016 are twice as witty and ascerbic as my comments from last year so I don't think they should be earning twice as many points from the exact same posters who repo-ed me last year.

    Also fokin noobs who rocked up yesterday should not be getting 2^9 = 512x as much repo for a comment as I got the day after I rocked up in 2007.

    If Admin really cannot normalise repo so it is not continually inflating for no reason then there is a relatively easy workaround

    Once a year (lets say on January 1st for example) Admin could manually adjust the factors in the repo power formula down by 50%

    e.g. if repo power is calculated using

    X*RepoScore + Y*DaysOfMembership + Z*PostCount

    or whatever it is then just manually adjust the values of X, Y and Z down by 50% once a year.




  2. #2
    Excommunicated baldrick's Avatar
    Join Date
    Apr 2006
    Last Online
    29-06-2025 @ 05:53 AM
    Posts
    25,351
    I think the admin should randomly dock repo from active posters as that would help to drive the post count up from whingers sooking about fcuking repo

  3. #3
    Thailand Expat
    Join Date
    Jun 2014
    Last Online
    @
    Posts
    18,022
    FOL....


  4. #4
    Thailand Expat
    Kurgen's Avatar
    Join Date
    Mar 2006
    Last Online
    15-05-2023 @ 10:57 AM
    Location
    Shitsville
    Posts
    8,812
    WTF cares?

    Edit;

    I wake up knowing I'm a great person, I don't need to be told

  5. #5
    . Neverna's Avatar
    Join Date
    Mar 2012
    Last Online
    @
    Posts
    22,142
    Quote Originally Posted by Looper View Post
    Can't remember if I did a thread on this before or not but I can't find it.
    You started this thread to discuss it. https://teakdoor.com/has-repo-inflation-just-been-addressed.html (Has Repo Inflation just been addressed...?)

  6. #6
    Philippine Expat
    Davis Knowlton's Avatar
    Join Date
    Sep 2009
    Last Online
    @
    Location
    Philippines
    Posts
    18,204
    How would you even know what your repo was worth? More to the point, why on earth would you care?

  7. #7
    Banned

    Join Date
    Jul 2012
    Last Online
    09-05-2021 @ 03:25 AM
    Posts
    33,644
    You can have a couple of my 8 cabbages if you want loops

  8. #8
    R.I.P. Luigi's Avatar
    Join Date
    Dec 2014
    Last Online
    @
    Location
    Abuja
    Posts
    26,213
    Quote Originally Posted by Davis Knowlton View Post
    More to the point, why on earth would you care?
    He might be a Aging Vadge sock.






    I do believe that that is the first time in history that sentence has ever been said.

  9. #9
    A Cockless Wonder
    Looper's Avatar
    Join Date
    Jun 2007
    Last Online
    @
    Posts
    16,316
    Quote Originally Posted by Davis Knowlton
    How would you even know what your repo was worth? More to the point, why on earth would you care?
    Davis, some of us lead small and inconsequential lives and these things take on a disproportionate level of importance. Please have some patience and understanding.

    Quote Originally Posted by Dillinger
    You can have a couple of my 8 cabbages if you want loops
    Yeah show us your cabbages Dill. Don't be shy. I thought Davis was going to burst the TD cabbage-mometer soon but if you are already on 8 then maybe you better keep it turned off.

  10. #10
    Banned

    Join Date
    Jul 2012
    Last Online
    09-05-2021 @ 03:25 AM
    Posts
    33,644
    Looper is Teakdoors very own Rain Man.


  11. #11
    Dislocated Member
    Neo's Avatar
    Join Date
    May 2011
    Last Online
    31-10-2021 @ 03:34 AM
    Location
    Nebuchadnezzar
    Posts
    10,609
    What's repo...

  12. #12
    R.I.P.
    DrB0b's Avatar
    Join Date
    Dec 2006
    Last Online
    @
    Location
    ALL GLORY TO THE HYPNOTOAD
    Posts
    17,118
    Looper, RTFM or RTFS

    A little out of date but still very close to the current code. Everything you need to know about repo and how it's calculated is here. Feel free to submit patches but please use github to make your code available to others.

    <?php
    /*================================================= =====================*\
    || ################################################## ################## ||
    || # vBulletin 3.6.0 Beta 4 - Licence Number $sm_lickey
    || # <hr><hr><hr><hr><hr><hr><hr><hr><hr><hr><hr><hr>---- # ||
    || # Copyright ?000-2006 Jelsoft Enterprises Ltd. All Rights Reserved. ||
    <br />SEO by <a rel="nofollow" href="http://www.crawlability.com/vbseo/">vBSEO</a> 3.6.1
    || # This file may not be redistributed in whole or significant part. # ||
    || # <hr><hr><hr>- VBULLETIN IS NOT FREE SOFTWARE <hr><hr><hr>- # ||
    || # vBulletin 5 Connect, The World's Leading Community Software | http://www.vbulletin.com/license.html # ||
    || ################################################## ################## ||
    \*================================================ ======================*/

    // ####################### SET PHP ENVIRONMENT ###########################
    error_reporting(E_ALL & ~E_NOTICE);

    // #################### DEFINE IMPORTANT CONSTANTS #######################
    define('THIS_SCRIPT', 'reputation');

    // ################### PRE-CACHE TEMPLATES AND DATA ######################
    // get special phrase groups
    $phrasegroups = array('reputation', 'reputationlevel');

    // get special data templates from the datastore
    $specialtemplates = array(
    'smiliecache',
    'bbcodecache'
    );

    // pre-cache templates used by all actions
    $globaltemplates = array(
    'reputation',
    'reputation_adjust',
    'reputation_ajax',
    'reputation_reasonbits',
    'reputation_yourpost',
    'reputationbit',
    'postbit_reputation',
    );

    // pre-cache templates used by specific actions
    $actiontemplates = array();

    // ######################### REQUIRE BACK-END ############################
    require_once('./global.php');
    require_once(DIR . '/includes/functions_reputation.php');

    // ################################################## #####################
    // ######################## START MAIN SCRIPT ############################
    // ################################################## #####################

    if (!$vbulletin->options['reputationenable'])
    {
    eval(standard_error(fetch_error('reputationdisable d')));
    }

    if (!$postinfo['postid'] OR !$threadinfo['threadid'] OR (!$threadinfo['visible'] AND !can_moderate($threadinfo['forumid'], 'canmoderateposts')) OR (!$postinfo['visible'] AND !can_moderate($threadinfo['forumid'], 'canmoderateposts'))OR $postinfo['isdeleted'] OR $threadinfo['isdeleted'])
    {
    eval(standard_error(fetch_error('invalidid', $vbphrase['post'], $vbulletin->options['contactuslink'])));
    }

    $forumperms = fetch_permissions($threadinfo['forumid']);

    if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canview']) OR !($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewthreads']))
    {
    print_no_permission();
    }
    if (!($forumperms & $vbulletin->bf_ugp_forumpermissions['canviewothers']) AND ($threadinfo['postuserid'] != $vbulletin->userinfo['userid'] OR $vbulletin->userinfo['userid'] == 0))
    {
    print_no_permission();
    }

    if ((!($permissions['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['canuserep']) AND $vbulletin->userinfo['userid'] != $postinfo['userid']) OR !$vbulletin->userinfo['userid'])
    {
    print_no_permission();
    }

    // check if there is a forum password and if so, ensure the user has it set
    verify_forum_password($foruminfo['forumid'], $foruminfo['password']);

    $userid = $db->query_first_slave("SELECT userid FROM " . TABLE_PREFIX . "post WHERE postid = $postid");
    $userinfo = fetch_userinfo($userid['userid']);

    $userid = $userinfo['userid'];

    if (!($vbulletin->usergroupcache["$userinfo[usergroupid]"]['genericoptions'] & $vbulletin->bf_ugp_genericoptions['isnotbannedgroup']))
    {
    eval(standard_error(fetch_error('reputationbanned' )));
    }

    if (!$userid)
    {
    eval(standard_error(fetch_error('invalidid', $vbphrase['user'], $vbulletin->options['contactuslink'])));
    }

    ($hook = vBulletinHook::fetch_hook('reputation_start')) ? eval($hook) : false;

    if ($_POST['do'] == 'addreputation')
    { // adjust reputation ratings

    $vbulletin->input->clean_array_gpc('p', array(
    'reputation' => TYPE_NOHTML,
    'reason' => TYPE_STR,
    'ajax' => TYPE_BOOL,
    ));

    if ($vbulletin->GPC['ajax'])
    {
    $vbulletin->GPC['reason'] = convert_urlencoded_unicode($vbulletin->GPC['reason']);
    }

    if ($userid == $vbulletin->userinfo['userid'])
    {
    eval(standard_error(fetch_error('reputationownpost ')));
    }

    $score = fetch_reppower($vbulletin->userinfo, $permissions, $vbulletin->GPC['reputation']);
    if ($score < 0 AND empty($vbulletin->GPC['reason']))
    {
    eval(standard_error(fetch_error('reputationreason' )));
    }

    // Check if the user has already reputation this post
    if ($repeat = $db->query_first("
    SELECT postid
    FROM " . TABLE_PREFIX . "reputation
    WHERE postid = $postid AND
    whoadded = " . $vbulletin->userinfo['userid']
    ))
    {
    eval(standard_error(fetch_error('reputationsamepos t')));
    }

    ($hook = vBulletinHook::fetch_hook('reputation_add_start')) ? eval($hook) : false;

    if (!($permissions['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['cancontrolpanel']))
    {
    if ($vbulletin->options['maxreputationperday'] >= $vbulletin->options['reputationrepeat'])
    {
    $klimit = ($vbulletin->options['maxreputationperday'] + 1);
    }
    else
    {
    $klimit = ($vbulletin->options['reputationrepeat'] + 1);
    }
    $checks = $db->query_read("
    SELECT userid, dateline
    FROM " . TABLE_PREFIX . "reputation
    WHERE whoadded = " . $vbulletin->userinfo['userid'] . "
    ORDER BY dateline DESC
    LIMIT 0, $klimit
    ");

    $i = 0;
    while ($check = $db->fetch_array($checks))
    {
    if (($i < $vbulletin->options['reputationrepeat']) AND ($check['userid'] == $userid))
    {
    eval(standard_error(fetch_error('reputationsameuse r', $userinfo['username'])));
    }
    if (($i + 1) == $vbulletin->options['maxreputationperday'] AND (($check['dateline'] + 86400) > TIMENOW))
    {
    eval(standard_error(fetch_error('reputationtoomany ')));
    }
    $i++;
    }
    }

    $userinfo['reputation'] += $score;

    // Determine this user's reputationlevelid.
    $reputationlevel = $db->query_first_slave("
    SELECT reputationlevelid
    FROM " . TABLE_PREFIX . "reputationlevel
    WHERE $userinfo[reputation] >= minimumreputation
    ORDER BY minimumreputation
    DESC LIMIT 1
    ");

    // init user data manager
    $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
    $userdata->set_existing($userinfo);
    $userdata->set('reputation', $userinfo['reputation']);
    $userdata->set('reputationlevelid', intval($reputationlevel['reputationlevelid']));

    ($hook = vBulletinHook::fetch_hook('reputation_add_process' )) ? eval($hook) : false;

    $userdata->save();

    /*insert query*/
    $db->query_write("
    INSERT INTO " . TABLE_PREFIX . "reputation (postid, reputation, userid, whoadded, reason, dateline)
    VALUES ($postid, $score, $userid, " . $vbulletin->userinfo['userid'] . ", '" . $db->escape_string(fetch_censored_text($vbulletin->GPC['reason'])) . "','" . TIMENOW . "')
    ");

    ($hook = vBulletinHook::fetch_hook('reputation_add_complete ')) ? eval($hook) : false;

    if (!$vbulletin->GPC['ajax'])
    {
    $vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . "&amp;p=$postid#post$postid";
    eval(print_standard_redirect('redirect_reputationa dd'));
    // redirect or close window here
    }
    else
    {
    cache_permissions($userinfo);
    $post = $userinfo;
    $repdisplay = fetch_reputation_image($post, $userinfo['permissions']);

    require_once(DIR . '/includes/class_xml.php');
    require_once(DIR . '/includes/functions_misc.php');
    $xml = new vB_AJAX_XML_Builder($vbulletin, 'text/xml');
    $xml->add_tag('reputation', fetch_phrase('redirect_reputationadd', 'frontredirect', 'redirect_'), array(
    'reppower' => fetch_reppower($userinfo, $userinfo['permissions']),
    'repdisplay' => $post['reputationdisplay'],
    'userid' => $userinfo['userid'],
    ));
    $xml->print_xml();
    }
    }
    else
    {
    $vbulletin->input->clean_array_gpc('p', array(
    'ajax' => TYPE_BOOL,
    ));

    if ($vbulletin->userinfo['userid'] == $userid)
    { // is this your own post?

    ($hook = vBulletinHook::fetch_hook('reputation_viewown_star t')) ? eval($hook) : false;

    $postreputations = $db->query_read_slave("
    SELECT reputation, reason
    FROM " . TABLE_PREFIX . "reputation
    WHERE postid = $postid
    ORDER BY dateline DESC
    ");

    if ($db->num_rows($postreputations) > 0)
    {

    require_once(DIR . '/includes/class_bbcode.php');
    $bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());

    while ($postreputation = $db->fetch_array($postreputations))
    {
    $total += $postreputation['reputation'];
    if ($postreputation['reputation'] > 0)
    {
    $posneg = 'pos';
    }
    else if ($postreputation['reputation'] < 0)
    {
    $posneg = 'neg';
    }
    else
    {
    $posneg = 'balance';
    }
    if (!empty($postreputation['reason']))
    {
    $reason = $bbcode_parser->parse($postreputation['reason']);
    }
    else
    {
    $reason = $vbphrase['n_a'];
    }

    exec_switch_bg();

    ($hook = vBulletinHook::fetch_hook('reputation_viewown_bit' )) ? eval($hook) : false;

    eval('$reputation_reasonbits .= "' . fetch_template('reputation_reasonbits') . '";');
    }

    if ($total == 0)
    {
    $reputation = $vbphrase['even'];
    }
    else if ($total > 0 AND $total <= 5)
    {
    $reputation = $vbphrase['somewhat_positive'];
    }
    else if ($total > 5 AND $total <= 15)
    {
    $reputation = $vbphrase['positive'];
    }
    else if ($total > 15 AND $total <= 25)
    {
    $reputation = $vbphrase['very_positive'];
    }
    else if ($total > 25)
    {
    $reputation = $vbphrase['extremely_positive'];
    }
    else if ($total < 0 AND $total >= -5)
    {
    $reputation = $vbphrase['somewhat_negative'];
    }
    else if ($total < -5 AND $total >= -15)
    {
    $reputation = $vbphrase['negative'];
    }
    else if ($total < -15 AND $total >= -25)
    {
    $reputation = $vbphrase['very_negative'];
    }
    else if ($total < -25)
    {
    $reputation = $vbphrase['extremely_negative'];
    }
    ($hook = vBulletinHook::fetch_hook('reputation_viewown_comp lete')) ? eval($hook) : false;
    }
    else
    {
    ($hook = vBulletinHook::fetch_hook('reputation_viewown_comp lete')) ? eval($hook) : false;
    eval(standard_error(fetch_error('reputation_yourpo st', $vbulletin->userinfo['reputation'])));
    }

    $show['ajax'] = ($vbulletin->GPC['ajax']);
    eval('$reputationbit = "' . fetch_template('reputation_yourpost') . '";');

    }
    else
    { // Not Your Post

    if ($repeat = $db->query_first_slave("
    SELECT postid
    FROM " . TABLE_PREFIX . "reputation
    WHERE postid = $postid AND
    whoadded = " . $vbulletin->userinfo['userid']
    ))
    {
    eval(standard_error(fetch_error('reputationsamepos t')));
    }

    if (!($permissions['adminpermissions'] & $vbulletin->bf_ugp_adminpermissions['cancontrolpanel']))
    {
    if ($vbulletin->options['maxreputationperday'] >= $vbulletin->options['reputationrepeat'])
    {
    $klimit = ($vbulletin->options['maxreputationperday'] + 1);
    }
    else
    {
    $klimit = ($vbulletin->options['reputationrepeat'] + 1);
    }
    $checks = $db->query_read_slave("
    SELECT userid, dateline
    FROM " . TABLE_PREFIX . "reputation
    WHERE whoadded = " . $vbulletin->userinfo['userid'] . "
    ORDER BY dateline DESC
    LIMIT 0, $klimit
    ");

    $i = 0;
    while ($check = $db->fetch_array($checks))
    {
    if (($i < $vbulletin->options['reputationrepeat']) AND ($check['userid'] == $userid))
    {
    eval(standard_error(fetch_error('reputationsameuse r', $userinfo['username'])));
    }
    if (($i + 1) == $vbulletin->options['maxreputationperday'] AND (($check['dateline'] + 86400) > TIMENOW))
    {
    eval(standard_error(fetch_error('reputationtoomany ')));
    }
    $i++;
    }
    }

    $show['negativerep'] = iif($permissions['genericpermissions'] & $vbulletin->bf_ugp_genericpermissions['cannegativerep'], true, false);
    $show['ajax'] = ($vbulletin->GPC['ajax']);

    ($hook = vBulletinHook::fetch_hook('reputation_form')) ? eval($hook) : false;

    $url = $vbulletin->url;
    eval('$reputationbit = "' . fetch_template('reputationbit') . '";');
    }

    if ($vbulletin->GPC['ajax'])
    {
    eval('$reputation = "' . fetch_template('reputation_ajax') . '";');

    require_once(DIR . '/includes/class_xml.php');
    $xml = new vB_AJAX_XML_Builder($vbulletin, 'text/xml');
    $xml->add_tag('reputationbit', $reputation);
    $xml->print_xml();
    }

    // draw nav bar
    $navbits = array();
    $parentlist = array_reverse(explode(',', $foruminfo['parentlist']));
    foreach ($parentlist AS $forumID)
    {
    $forumTitle = $vbulletin->forumcache["$forumID"]['title'];
    $navbits['forumdisplay.php?' . $vbulletin->session->vars['sessionurl'] . "f=$forumID"] = $forumTitle;
    }
    $navbits['showthread.php?' . $vbulletin->session->vars['sessionurl'] . "p=$postid"] = $threadinfo['title'];
    $navbits[''] = $vbphrase['reputation'];
    $navbits = construct_navbits($navbits);

    eval('$navbar = "' . fetch_template('navbar') . '";');

    eval('print_output("' . fetch_template('reputation') . '");');
    }

    /*================================================= =====================*\
    || ################################################## ##################
    || # Downloaded: $sm_time, $sm_date
    || # CVS: $RCSfile: reputation.php,v $ - $Revision: 1.80 $
    || ################################################## ##################
    \*================================================ ======================*/
    ?>
    The Above Post May Contain Strong Language, Flashing Lights, or Violent Scenes.

  13. #13
    . Neverna's Avatar
    Join Date
    Mar 2012
    Last Online
    @
    Posts
    22,142
    Quote Originally Posted by Looper View Post
    Quote Originally Posted by Davis Knowlton
    How would you even know what your repo was worth? More to the point, why on earth would you care?
    Davis, some of us lead small and inconsequential lives and these things take on a disproportionate level of importance. Please have some patience and understanding.
    Turn your repo off and ask people not to send you any repo.

  14. #14
    god
    Join Date
    Nov 2006
    Last Online
    @
    Location
    Bangladesh
    Posts
    28,210
    Why have repo at all?

  15. #15
    R.I.P.
    DrB0b's Avatar
    Join Date
    Dec 2006
    Last Online
    @
    Location
    ALL GLORY TO THE HYPNOTOAD
    Posts
    17,118
    Quote Originally Posted by ENT View Post
    Why have repo at all?
    Considering that this forum is full of stupid old men squabbling for dominance in a quest to be idiot number one don't you think that's a silly question?

  16. #16
    Thailand Expat
    can123's Avatar
    Join Date
    Oct 2010
    Last Online
    24-04-2023 @ 02:34 PM
    Posts
    5,547
    Some don't need cabbages for repo. A lot of men here already have a cabbage situated just at the top of their necks.

  17. #17
    . Neverna's Avatar
    Join Date
    Mar 2012
    Last Online
    @
    Posts
    22,142
    Quote Originally Posted by DrB0b View Post
    Quote Originally Posted by ENT View Post
    Why have repo at all?
    Considering that this forum is full of stupid old men squabbling for dominance in a quest to be idiot number one don't you think that's a silly question?
    ^ Green sent!!


  18. #18
    Thailand Expat

    Join Date
    Mar 2011
    Last Online
    25-03-2021 @ 08:47 AM
    Posts
    36,437
    If you fail to make payments, the result is repo...Simples...

  19. #19
    Thailand Expat lom's Avatar
    Join Date
    Jan 2006
    Last Online
    @
    Location
    on my way
    Posts
    11,453
    Quote Originally Posted by DrB0b
    Feel free to submit patches but please use github to make your code available to others.
    It is a commercial program, why should the public submit patches to it?

  20. #20
    Thailand Expat
    Kurgen's Avatar
    Join Date
    Mar 2006
    Last Online
    15-05-2023 @ 10:57 AM
    Location
    Shitsville
    Posts
    8,812
    Hey Dr Knob, great post, you knob!

  21. #21
    R.I.P.
    DrB0b's Avatar
    Join Date
    Dec 2006
    Last Online
    @
    Location
    ALL GLORY TO THE HYPNOTOAD
    Posts
    17,118
    Quote Originally Posted by lom View Post
    Quote Originally Posted by DrB0b
    Feel free to submit patches but please use github to make your code available to others.
    It is a commercial program, why should the public submit patches to it?

    Fair enough, I should have said that he should write his own mod, which many people have done for vbulletin, and maintained it on github. I wonder if he'll read the repo code or, as usual, just make up incomprehensible gobbledegook.

  22. #22
    A Cockless Wonder
    Looper's Avatar
    Join Date
    Jun 2007
    Last Online
    @
    Posts
    16,316
    Quote Originally Posted by DrB0b
    A little out of date but still very close to the current code.
    I would be interested in taking a closer look at this code but anything without Allman style 4 space indentation makes my eyes hurt.

  23. #23
    On a walkabout Loy Toy's Avatar
    Join Date
    Jun 2008
    Last Online
    @
    Posts
    30,557
    I remember how somehow I was the head repo person here and all based upon my threads which were based upon my feelings and not cut and paste crap and building your repo illegally.

    Members such as Davis Knowlton, who was on my arse always, and I remember him speaking to a few other members [they know who they are] who told me you are working too hard to keep your status........... Play the repo game its good for you FUCK OFF..................

    Davis without doubt was after my status which meant fuck all to me but he put it on the board he could not catch me but made it clear he would do so. I then decided not to post as I had done before and closed off my personal stuff and of course my responding threads were affected.

    Anyway all is good, for me get it on or get it off and be fucknng happy with your shit.

    I have always enjoyed the interaction here. made so many friends and have learned so much from the people willing to share. Thank you all who honestly shared with me. Love you all...........

    Best I learn from people who share their wisdom and not from those that want to lead a stupid internet forum with statistics.

  24. #24
    R.I.P. Luigi's Avatar
    Join Date
    Dec 2014
    Last Online
    @
    Location
    Abuja
    Posts
    26,213
    ffs.

    They're a few pixels of colour*.












    *Unless you're colour blind.

  25. #25
    splendid and tremendous
    somtamslap's Avatar
    Join Date
    Dec 2007
    Last Online
    10-06-2025 @ 05:23 AM
    Location
    Down on the farm
    Posts
    13,805
    I'm always profoundly surprised when I look at the 'leader board' to note that I'm not at the top of it.

    The most excellent and frankly rather wonderful Slap :SPARKLE: has spoken

Page 1 of 2 12 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •